把二叉树打印成多行

95 阅读1分钟

把二叉树打印成多行

ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
    ArrayList<ArrayList<Integer>> res = new ArrayList<>();
    if(pRoot==null){
        return res;
    }

    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(pRoot);

    int level=0;

    while(!queue.isEmpty()){
        if(level==res.size()){
            res.add(new ArrayList<>());
        }
        int num = queue.size();
        while (num-->0){
            TreeNode node = queue.poll();
            res.get(level).add(node.val);
            if(node.left!=null){
                queue.add(node.left);
            }
            if(node.right!=null){
                queue.add(node.right);
            }
        }
        level++;
    }
    return res;
}

www.mianshi.onlinewww.i9code.cn

本文由博客一文多发平台 OpenWrite 发布!