从上往下打印二叉树

题目描述

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

思路:用队列保存将要打印的节点,出队列时,将左节点和右节点分别加入队列当中,直到队列为空,打印完毕。

    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        if(root==null){
            return null;
        }
        Queue<TreeNode> queue=new ArrayBlockingQueue<TreeNode>(0);
        ArrayList<Integer> list=new ArrayList<Integer>();

        queue.offer(root);
        while(!queue.isEmpty()){
            TreeNode node=queue.poll();
            if(node.left!=null){
                queue.offer(node.left);
            }
            if(node.right!=null){
                queue.offer(node.right);
            }
            list.add(node.val);         
        }
        return list;
    }
posted @ 2016-05-02 14:42  黄大仙爱编程  阅读(101)  评论(0编辑  收藏  举报