《剑指offer》面试题23 从上往下打印二叉树 Java版

注意层序遍历的时候对每一层的处理方式可能不同,这里把每一层的元素保存进一个List中了,那么就需要记录每一层的数量。

    	public List<List<Integer>> search(TreeNode root){
    		List<List<Integer>> result = new ArrayList<List<Integer>>();
    		
    		Queue<TreeNode> queue = new LinkedList<TreeNode>();
    		if (root == null) {
    			return result;
    		}
    		queue.offer(root);
    		
    		
    		while(!queue.isEmpty()){
    			List<Integer> row = new ArrayList<Integer>();
    			int size = queue.size();
    			for(int i=0; i<size; i++){
    				TreeNode now = queue.poll();
    				row.add(now.val);
    				if(now.left != null)queue.offer(now.left);
    				if(now.right != null)queue.offer(now.right);
    			}
    			result.add(row);
    		}
    		return result;
    	}                   
posted @ 2019-10-09 10:34  CrazyJack  阅读(105)  评论(0编辑  收藏  举报