此题根前面一道如出一辙,而且更简单一些

把二叉树打印成多行

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

public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        ArrayList<ArrayList<Integer>> res = new ArrayList<>();
        ArrayList<Integer> item = new ArrayList<Integer>();
        Queue<TreeNode> q1 = new LinkedList<TreeNode>();
        Queue<TreeNode> q2 = new LinkedList<TreeNode>();
        if(pRoot==null) return res;
        q1.add(pRoot);
        while(true){
            if(q1.isEmpty() && q2.isEmpty()) break;
            if(!q1.isEmpty()){
                while(!q1.isEmpty()){
                    TreeNode temp = q1.poll();
                    item.add(temp.val);
                    if(temp.left!=null) q2.add(temp.left);
                    if(temp.right!=null) q2.add(temp.right);
                }
                res.add(new ArrayList(item));
                item.clear();
            }else{
                while(!q2.isEmpty()){
                    TreeNode temp = q2.poll();
                    item.add(temp.val);
                    if(temp.left!=null) q1.add(temp.left);
                    if(temp.right!=null) q1.add(temp.right);
                }
                res.add(new ArrayList(item));
                item.clear();
            }

        }
        return res;
    }
全部评论

相关推荐

05-23 19:33
重庆大学 Java
只学了传统后端,马上去后端实习了,在想要不要学习agent开发相关的。27秋招和26相比难度如何?
我连备胎都不是却还在...:就暑期实习而言,大厂官宣hc 比 26 多,但是我观察看应该低于 26 的,估计秋招也不简单
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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