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

把二叉树打印成多行

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

相关推荐

2024-12-09 12:21
门头沟学院 C++
l11hy:今早刚开,已满足
点赞 评论 收藏
分享
头像 会员标识
01-16 12:52
牛客运营
神哥不得了:你好,你是我见过最美的美国女生,请问你有PDD嘛😬
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务