[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II

Posted Spring-_-Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II相关的知识,希望对你有一定的参考价值。

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

例如:

给定二叉树: [3,9,20,null,null,15,7],

    3
   / \\
  9  20
    /  \\
   15   7

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

提示:

节点总数 <= 1000

题解:

    /**
     * 剑指 Offer 32 - II. 从上到下打印二叉树 II
     * 树的广度优先遍历
     */
    public List<List<Integer>> levelOrder(TreeNode root) 
        Queue<TreeNode> queue = new LinkedList<>();
        List<List<Integer>> res = new ArrayList<>();

        if (root != null) 
            queue.add(root);
        

        // 当队列不为空时遍历队列
        while (!queue.isEmpty()) 
            // 临时集合,存储当前层的遍历结果
            List<Integer> tmp = new ArrayList<>();
            // 遍历当前层的所有节点
            for (int i = queue.size(); i > 0; i--) 
                // 队列中的队首节点出队并加入 tmp 中
                TreeNode node = queue.poll();
                tmp.add(node.val);

                // 将其左、右孩子加入到队列尾
                if (node.left != null) 
                    queue.add(node.left);
                
                if (node.right != null) 
                    queue.add(node.right);
                
            
            res.add(tmp);
        
        return res;
    

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof

以上是关于[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II的主要内容,如果未能解决你的问题,请参考以下文章

leetcode剑指 Offer 66. 构建乘积数组

LeetCode 剑指Offer 15[位运算] 二进制中1的个数 HERODING的LeetCode之路

LeetCode1482. 制作 m 束花所需的最少天数 / 剑指 Offer 32 . 从上到下打印二叉树I/II/III

LeetCode剑指 Offer II 069. 山峰数组的顶部(C++)

LeetCode剑指 Offer(27)

剑指Offer32,从上到下打印二叉树