题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路还是很清晰的,使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来
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;
}
}