# 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: if not root: return 0 total = 0 def dfs(node, parent_num = 0): nonlocal total if not node: return node_num = parent_num * 10 + node.val if node.left is None and node.right is None: total += node_num return if node.left is not None: dfs(node.left, node_num) if node.right is not None: dfs(node.right, node_num) dfs(root) return total Complexity Time: O(n) Space: O(n)