天天看點

java 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

題目描述

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。 思路還是很清晰的,使用兩個隊列一個存放節點,一個存放值。先将根節點加入到隊列中,然後周遊隊列中的元素,周遊過程中,通路該元素的左右節點,再将左右子節點加入到隊列中來

public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
			ArrayList<Integer> intList=new ArrayList<Integer>();
			ArrayList<TreeNode> treeList=new ArrayList<TreeNode>();
			if(root==null){
				return intList;
			}
			treeList.add(root);
			for(int i=0;i<treeList.size();i++){
				TreeNode node=  treeList.get(i);
				if(node.left!=null){
					treeList.add(node.left);
				}
				if(node.right!=null){
					treeList.add(node.right);
				}
				intList.add(node.val);
			}
			return intList;
		}
}