[LeetCode]129. Sum Root to Leaf Numbers
129. Sum Root to Leaf Numbers
DFS
class Solution(object):
res = 0
def sumNumbers(self, root):
"""
:type root: TreeNode
:rtype: int
"""
def dfs(node, path):
if not node.left and not node.right:
self.res += int(path + str(node.val))
return
if node.left:
dfs(node.left, path + str(node.val))
if node.right:
dfs(node.right, path + str(node.val))
if not root:
return 0
dfs(root, '')
return self.res
BFS
class Solution(object):
res = 0
def sumNumbers(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return 0
queue = [(root, 0)]
while queue:
node, val = queue.pop(0)
cur = val * 10 + node.val
if node.left:
queue.append((node.left, cur))
if node.right:
queue.append((node.right, cur))
if not node.left and not node.right:
self.res += cur
return self.res
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法