给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \
1 3
输出:
1
示例 2:
输入:
1
/ \
2 3
/ / \
4 5 6
/
7
输出:
7
注意: 您可以假设树(即给定的根节点)不为 NULL。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-bottom-left-tree-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
#最直观的思路
# 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: TreeNode) -> int:
def depth(root, dep):
if not root.left and not root.right:
if dep > res[-1]:
res[0] = root.val
res[-1] = dep
return
if root.left:
depth(root.left, dep + 1)
if root.right:
depth(root.right, dep + 1)
res = [0, -1]
depth(root, 0)
return res[0]
# res = 0
# queue = [root]
# while queue:
# n = len(queue)
# for i in range(n):
# node = queue.pop(0)
# if i == 0:
# res = node.val
# if node.left:
# queue.append(node.left)
# if node.right:
# queue.append(node.right)
# return res