1.题目
2. 思想
递归
3. 代码
# 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 __init__(self):
self.res = 0
def sumNumbers(self, root: Optional[TreeNode]) -> int:
self.dfs(root,tmp=0)
return self.res
# 深搜找出所有叶节点
# tmp 表示根节点到当前节点的值
def dfs(self,root,tmp):
if root is None: # 如果是None,说明到头儿了
return
if root.left:
self.dfs(root.left,tmp*10 + root.val)
if root.right:
self.dfs(root.right,tmp*10 + root.val)
# 如果左右节点都是空,说明当前就是根节点
if root.left ==None and root.right==None:
self.res += (tmp*10 + root.val)