LeetCode 513. 找树左下角的值

2022-07-10  本文已影响0人  草莓桃子酪酪
题目

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

例:
输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7

方法:递归

要求找到二叉树的最后一行(深度最大)的最左边的叶子节点的值,所以可以使用前序遍历,先搜索左边

# Definition for a binary tree node.
# 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: Optional[TreeNode]) -> int:
        max_depth = -1
        max_value = 0

        def traversal(root, depth):
            nonlocal max_depth, max_value
            if root.left == None and root.right == None:
                if depth > max_depth:
                    max_depth = depth
                    max_value = root.val
            if root.left:
                traversal(root.left, depth + 1)
            if root.right:
                traversal(root.right, depth + 1)

        traversal(root, 0)
        return max_value
相关知识
报错
参考

代码相关:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html

上一篇 下一篇

猜你喜欢

热点阅读