513.找树左下角的值:
给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入: 2 / \ 1 3 输出: 1
示例 2:
输入: 1 / \ 2 3 / / \ 4 5 6 / 7 输出: 7
先附上代码,再给思路,喜欢的点赞!求关注,会持续更新!!!:
class Solution(object):
def findBottomLeftValue(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return None
queue = [root]
max_flag=0
max_num=None
while queue:
leng= len(queue)
for i in range(leng):
root_1 = queue.pop(0)
if root_1.right:
queue.append(root_1.right)
if root_1.left:
queue.append(root_1.left)
return root_1.val
该题的目的是找最深的深度左下值,故当同一子树,左右深度一致时,取左树。
所以应从右侧优先寻找,当以上深度出现,左可以覆盖右。
并且:我根据树的特征来做:从根节点开始,将每一层深度的子树全找到并放在队列,下一次又全部干掉,当干掉最后的子树时候,该子树就是最深的深度,并且还是左侧。
就是这样!喵~
代码全python,可以先验证在思考~