【题目】
【代码】
![在这里
class Solution:
def dfs(self,root,level=0):
if not root:return
if level not in self.level:
self.level[level]=0
self.depth=max(self.depth,level)
self.level[level]+=root.val
self.dfs(root.left,level+1)
self.dfs(root.right,level+1)
def deepestLeavesSum(self, root: Optional[TreeNode]) -> int:
self.level={}
self.depth=-1
self.dfs(root)
return self.level[self.depth]
【方法2】
# 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 deepestLeavesSum(self, root: Optional[TreeNode]) -> int:
queue=[root]
level=[]
while queue:
sz=len(queue)
s=0
for i in range(sz):
temp=queue.pop(0)
s+=temp.val
if temp.left:
queue.append(temp.left)
if temp.right:
queue.append(temp.right)
level.append(s)
return level[-1]