LeetCode 129. Sum Root to Leaf Numbers
考点 | 难度 |
---|---|
DFS | Medium |
题目
You are given the root of a binary tree containing digits from 0 to 9 only.
Each root-to-leaf path in the tree represents a number.
For example, the root-to-leaf path 1 -> 2 -> 3 represents the number 123.
Return the total sum of all root-to-leaf numbers. Test cases are generated so that the answer will fit in a 32-bit integer.
A leaf node is a node with no children.
思路
DFS, 用child就当前值乘以10加child
答案
class Solution(object):
def sumNumbers(self, root): # DFS recursively
self.res = 0
self.dfs(root, 0)
return self.res
def dfs(self, root, path):
if root:
if not root.left and not root.right:
path = path*10 + root.val
self.res += path
self.dfs(root.left, path*10+root.val)
self.dfs(root.right, path*10+root.val)