题解 | #从上往下打印二叉树#

从上往下打印二叉树

http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701

题解思路: 我们可以进行层次遍历,然后使用队列存储层次结果的值,然后将队列中的值放入到数组中


        //判断头节点是否有值

        //创建一个队列用来存放结点
        Queue queue = new LinkedList<>();

        //创建一个返回的列表
        ArrayList<Integer> list = new ArrayList<>();
        if (root==null){
            return list;
        }

        //根节点入队列
        queue.add(root);

        //使用循环实现层次遍历
        while (!queue.isEmpty()){

            //首先将队列中的结点弹出去

            TreeNode node= (TreeNode)queue.poll();

            //将弹出的结点的值放入到返回的列表中
            if (node!=null) {
                list.add(node.val);

            }
            //将弹出结点的左右子结点放入到队列中
            if (node.left!=null){
                queue.add(node.left);
            }
            if (node.right!=null){
                queue.add(node.right);
            }


        }


        return list;

    }

全部评论

相关推荐

头发暂时没有的KFC总裁:找廉价劳动力罢了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务