2021-10-04 从上到下打印二叉树 III

题目:
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
示例:
给定二叉树: [3,9,20,null,null,15,7],
输出:[[3],[20,9],[15,7]]
思路:
层序遍历的思想,只不过是单数层从左到右打印,偶数层从右往左打印。层层遍历。
代码:

public List<List<Integer>> levelorder(TreeNode root){
	if(root == null){ return new ArrayList();}
	boolean isdouble = false;
	List<List<Integer>> node =new ArrayList();
	Queue<TreeNode> queue = new LinkedList<>();
	queue.offer(root);
	while(true){
		int size = queue.size();
		LinkedList<Integer> hw = new LinkedList<>();
		for(int i =0;i<size;i++){
			root = queue.poll();
			if(isdouble) hw.addLast(root.val);
			else hw.addFirst(root.val);
			}
			isdouble = !isdouble;
			if(root.left!=null) queue.offer(root.left);
			if(root.right!=null) queue.offer(root.right);
			node.add(hw);
			if(queue.isEmpty()) break;
				}
	return node;
	}
上一篇:《二十二kfaka集群controller,Reblance和HW》


下一篇:【秋招机试真题】hw-顺序执行的任务执行时间计算