您需要在二叉树的每一行中找到最大的值。
示例:
输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9]
思路:
还是先层序遍历二叉树,把每一行的所有元素找出来,然后把它们中的最大值添加到到result里。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def largestValues(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
next_layer = [root]
result = []
while(next_layer):
temp_next_layer = []
layer_value = []
for node in next_layer:
if not node:
continue
layer_value.append(node.val)
# print layer_value
if node.left:
temp_next_layer.append(node.left)
if node.right:
temp_next_layer.append(node.right)
# print temp_next_layer[0].val
next_layer = temp_next_layer
result.append(max(layer_value))
return result