给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入: 2 / \ 1 3 输出: 1
示例 2:
输入: 1 / \ 2 3 / / \ 4 5 6 / 7 输出: 7
注意: 您可以假设树(即给定的根节点)不为 NULL。
思路:
还是二叉树的层序遍历,把每一层的所有节点的值存入一个数组layer_value,层数每加一,这个数组就重置一次,
最后返回这个数组的第一个元素就OK。
# 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 findBottomLeftValue(self, root):
"""
:type root: TreeNode
:rtype: int
"""
next_layer = [root]
while(next_layer):
temp_next_layer = []
layer_value = []
for node in next_layer:
if node.left:
temp_next_layer.append(node.left)
if node.right:
temp_next_layer.append(node.right)
layer_value.append(node.val)
# print layer_value
next_layer = temp_next_layer
# print layer_value
return layer_value[0]