## 題解
### DFS
```python=
# 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 sumNumbers(self, root: Optional[TreeNode]) -> int:
self.total = 0
def dfs(root,sumStr: str):
if not root:
return
if not root.left and not root.right:
self.total += int(sumStr + str(root.val))
dfs(root.left,sumStr+str(root.val))
dfs(root.right,sumStr+str(root.val))
dfs(root,"")
return self.total
```
```python=
# 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 sumNumbers(self, root: Optional[TreeNode]) -> int:
self.total = 0
def dfs(root: TreeNode, sum: int):
if not root:
return
sum = sum * 10
if not root.left and not root.right:
self.total += sum + root.val
dfs(root.left,sum +root.val)
dfs(root.right,sum+root.val)
dfs(root,0)
return self.total
```