跳至主要內容

剑指 Offer II 044. 二叉树每层的最大值

ITCharge小于 1 分钟

剑指 Offer II 044. 二叉树每层的最大值open in new window

  • 标签:树、深度优先搜索、广度优先搜索、二叉树
  • 难度:中等

题目链接

题目大意

给定一棵二叉树的根节点 root

要求:找出二叉树中每一层的最大值。

解题思路

利用队列进行层序遍历,并记录下每一层的最大值,将其存入答案数组中。

代码

class Solution:
    def largestValues(self, root: TreeNode) -> List[int]:
        queue = []
        res = []
        if root:
            queue.append(root)
        while queue:
            max_level = float('-inf')
            size_level = len(queue)
            for i in range(size_level):
                node = queue.pop(0)
                max_level = max(max_level, node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            res.append(max_level)
        return res