JAVA双队列

把二叉树打印成多行

http://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288

单队列即可,因为我先看的后面这题,所以用了双队列 ,哈哈哈,有点傻了

    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        //双队列
        ArrayList<ArrayList<Integer>> listAll = new ArrayList<>();
        if(pRoot==null) {
            return listAll;
        }
        Queue<TreeNode> queue1 = new LinkedList<>();
        Queue<TreeNode> queue2 = new LinkedList<>();
        queue1.add(pRoot);
        while(!queue1.isEmpty()||!queue2.isEmpty()) {
            ArrayList<Integer> list = new ArrayList<>();
            if(!queue1.isEmpty()) {
                while(!queue1.isEmpty()) {
                    TreeNode node = queue1.remove();
                    list.add(node.val);
                    if (node.left != null)
                        queue2.add(node.left);
                    if (node.right != null)
                        queue2.add(node.right);
                }
                listAll.add(list);
                continue;
            }else {
                while(!queue2.isEmpty()) {
                    TreeNode node = queue2.remove();
                    list.add(node.val);
                    if (node.left != null)
                        queue1.add(node.left);
                    if (node.right != null)
                        queue1.add(node.right);
                }
                listAll.add(list);
                continue;
            }
        }
        return listAll;

    }
全部评论

相关推荐

面向对象的火龙果很爱...:去吃一顿炸鸡就走
点赞 评论 收藏
分享
今天 10:56
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务