剑指Offer-从上往下打印二叉树

从上往下打印二叉树

题目

从上往下打印出二叉树的每个节点,同层节点从左至右打印

思路

使用一个队列,当前结点出队的时候,分别把他的左右子节点扔到队列中。

代码

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;
    }
}
0%