码迷,mamicode.com
首页 > 其他好文 > 详细

牛客(22)从上往下打印二叉树

时间:2018-05-09 14:46:10      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:add   null   rom   打印   poll   tree   ott   root   his   

//    题目描述
//    从上往下打印出二叉树的每个节点,同层节点从左至右打印。
    public static class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }

    }

    public static ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
//        可以返回个空ArrayList 不能反悔null ,尽量避免返回null 容易引起异常
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        Queue<TreeNode> stack0 = new LinkedList<TreeNode>();
        Queue<TreeNode> stack1 = new LinkedList<TreeNode>();
        if (root != null) {
            stack0.offer(root);
        }
        while (!stack0.isEmpty() || !stack1.isEmpty()) {
            while (!stack0.isEmpty()) {
                TreeNode current = stack0.poll();
                arrayList.add(current.val);
                if (current.left != null) {
                    stack1.offer(current.left);
                }
                if (current.right != null) {
                    stack1.offer(current.right);
                }

            }
            while (!stack1.isEmpty()) {
                TreeNode current = stack1.poll();
                arrayList.add(current.val);
                if (current.left != null) {
                    stack0.offer(current.left);
                }
                if (current.right != null) {
                    stack0.offer(current.right);
                }

            }

        }
        return arrayList;
    }

 

牛客(22)从上往下打印二叉树

标签:add   null   rom   打印   poll   tree   ott   root   his   

原文地址:https://www.cnblogs.com/kaibing/p/9013358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!