从上往下打印二叉树
题目
从上往下打印出二叉树的每个节点,同层节点从左至右打印
思路
使用一个队列,当前结点出队的时候,分别把他的左右子节点扔到队列中。
代码
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList res = new ArrayList();
if(root==null){
return res;
}
Queue<TreeNode> cur = new LinkedList();
cur.offer(root);//根节点入队
while(!cur.isEmpty()){
TreeNode next = cur.poll();
if(next.left!=null){
cur.offer(next.left);
}
if(next.right!=null){
cur.offer(next.right);
}
res.add(next.val);
}
return res;
}
}