要求
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。
示例1:
输入: root = [1,3,2,5,3,null,9]
输出: [1,3,9]
解释:
1
/ \
3 2
/ \ \
5 3 9
示例2:
输入: root = [1,2,3]
输出: [1,3]
解释:
1
/ \
2 3
示例3:
输入: root = [1]
输出: [1]
示例4:
输入: root = [1,null,2]
输出: [1,2]
解释:
1
\
2
示例5:
输入: root = []
输出: []
核心代码
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def largestValues(self, root: TreeNode) -> List[int]:
if not root:
return []
result = []
next_layer = [root]
while next_layer:
temp_next_layer = []
layer_values = []
for node in next_layer:
if not node:
continue
layer_values.append(node.val)
if node.left:
temp_next_layer.append(node.left)
if node.right:
temp_next_layer.append(node.right)
next_layer = temp_next_layer
result.append(max(layer_values))
return result
解题思路:这个题就是树的层次遍历,存储每一层的值,最后将每一层的值中的最大值输出。