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

把二叉树打印成多行

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;
    }
全部评论

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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