[勇者闯LeetCode] 129. Sum Root to Leaf Number
Description
Given a binary tree containing digits from
0-9
only, each root-to-leaf path could represent a number.An example is the root-to-leaf path
1->2->3
which represents the number123
.Find the total sum of all root-to-leaf numbers.
For example,
1
/ \
2 3
The root-to-leaf path
1->2
represents the number12
.
The root-to-leaf path1->3
represents the number13
.Return the sum = 12 + 13 =
25
.
Information
- Difficulty: Medium
Solution
使用DFS过程中,保存路径代表的数字,最后相加得到最终结果。
Python Code
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def sumNumbers(self, root):
"""
:type root: TreeNode
:rtype: int
"""
return self.sumNumbersRecu(root, 0)
def sumNumbersRecu(self, root, num):
if root is None:
return 0
new_num = num * 10 + root.val
if root.left is None and root.right is None:
return new_num
return self.sumNumbersRecu(root.left, new_num) + self.sumNumbersRecu(root.right, new_num)