要求
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
示例 1:
输入: root = [2,1,3]
输出: 1
示例 2:
输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7
核心代码
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def findBottomLeftValue(self, root: TreeNode) -> int:
next_layer = [root]
while next_layer:
new_next_layer = []
layer_values = []
for node in next_layer:
if node.left:
new_next_layer.append(node.left)
if node.right:
new_next_layer.append(node.right)
layer_values.append(node.val)
next_layer = new_next_layer
return layer_values[0]
解题思路:这个题其实就是层次遍历,我们的在遍历到每一层的时候可以将所有的层的节点都收集起来,在层中第一个数字的就是该层最左边的数字,我们遍历到最后一层的第一个数字就是我们要的最左下角的数字。