Sum Root to Leaf Numbers
原题链接
实现原理解析
该题使用深度搜索找到所有路径,然后把每个路径下的数加起来即可
python代码实现
import copy
class Solution(object):
def __init__(self):
self.paths = []
self.path = []
self.sum = 0
def sumNumbers(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.dfs(root)
print self.paths
for pt in self.paths:
value = 0
for each in pt:
value = value*10 + each
self.sum += value
return self.sum
def dfs(self, root):
"""
:param root:
:return:
"""
if root is None:
return
elif root.left is None and root.right is None:
self.path.append(root.val)
self.paths.append(copy.deepcopy(self.path))
self.path.pop()
else:
self.path.append(root.val)
self.dfs(root.left)
self.dfs(root.right)
self.path.pop()