0
点赞
收藏
分享

微信扫一扫

LC: 剑指 Offer 32 - II. 从上到下打印二叉树 II

yeamy 2022-04-25 阅读 90

题目:

剑指 Offer 32 - II. 从上到下打印二叉树 II。
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

链接:https://leetcode-cn.com/leetbook/read/illustrate-lcof/xswwvg/

本题与主站 102 题相同:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

示例:

例如:
给定二叉树: [3,9,20,null,null,15,7],
在这里插入图片描述
返回其层次遍历结果:

在这里插入图片描述
提示:节点总数 <= 1000

思路:

树的广度优先遍历。
首先将上一层节点存入队列,队列不为空时执行循环。遍历本层节点,设置一个临时的列表存储同层节点值,将下一层节点存入队列,本层节点遍历完后将临时列表中的结果追加的返回值列表中,继续下一循环。

代码:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root: return []
        res, queue = [], []
        queue.append(root)
        while queue:
            temp = []
            for i in range(len(queue)):
                node = queue.pop(0)
                temp.append(node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            res.append(temp)
        return res

时间复杂度O(n),空间复杂度O(n).

举报

相关推荐

0 条评论