Given a binary tree containing digits from
An example is the root-to-leaf path
Find the total sum of all root-to-leaf numbers.
For example,
1
/ \
2 3
The root-to-leaf path
The root-to-leaf path
Return the sum = 12 + 13 =
还是得用递归做
开始的时候总是出问题,关键就在于,如果输入是12345的时候,13对应的是13,而不是130
也就是说不能按照每一层来算,因为同样是1,在124这条路径上,1表示一百,在13这条路径上,表示的是10
关键点就在于,什么时候把当前结果加到总的结果上——应该是到叶子节点的时候,再一起加上去。用summ表示当前这条路径上的当前结果。只有这样,才能通过参数传进去。
# 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 __init__(self):
self.res = 0
def dfs(self,root,summ):
if root == None:
return
summ = root.val + summ*10
if root.left:
self.dfs(root.left,summ)
if root.right:
self.dfs(root.right,summ)
if root.left == None and root.right == None:
self.res += summ
#print root.val,summ
def sumNumbers(self, root):
self.dfs(root,0)
#print self.res
return self.res
"""
:type root: TreeNode
:rtype: int
"""
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 number 123
.Find the total sum of all root-to-leaf numbers.
For example,
1
/ \
2 3
The root-to-leaf path
1->2
represents
the number 12
.The root-to-leaf path
1->3
represents
the number 13
.Return the sum = 12 + 13 =
25
.还是得用递归做
开始的时候总是出问题,关键就在于,如果输入是12345的时候,13对应的是13,而不是130
也就是说不能按照每一层来算,因为同样是1,在124这条路径上,1表示一百,在13这条路径上,表示的是10
关键点就在于,什么时候把当前结果加到总的结果上——应该是到叶子节点的时候,再一起加上去。用summ表示当前这条路径上的当前结果。只有这样,才能通过参数传进去。
# 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 __init__(self):
self.res = 0
def dfs(self,root,summ):
if root == None:
return
summ = root.val + summ*10
if root.left:
self.dfs(root.left,summ)
if root.right:
self.dfs(root.right,summ)
if root.left == None and root.right == None:
self.res += summ
#print root.val,summ
def sumNumbers(self, root):
self.dfs(root,0)
#print self.res
return self.res
"""
:type root: TreeNode
:rtype: int
"""