leetcode_513 找树左下角的值

63 阅读1分钟

要求

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。

假设二叉树中至少有一个节点。

示例 1:

image.png

输入: root = [2,1,3]
输出: 1

示例 2:

image.png

输入: [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]

image.png

解题思路:这个题其实就是层次遍历,我们的在遍历到每一层的时候可以将所有的层的节点都收集起来,在层中第一个数字的就是该层最左边的数字,我们遍历到最后一层的第一个数字就是我们要的最左下角的数字。