[LeetCode]113. Path Sum II
113. Path Sum II
DFS
class Solution(object):
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
def dfs(node, cursum, path):
if not node.left and not node.right:
if cursum == sum:
res.append(path)
return
if node.left:
dfs(node.left, cursum + node.left.val, path + [node.left.val])
if node.right:
dfs(node.right, cursum + node.right.val, path + [node.right.val])
if not root:
return []
res = []
dfs(root, root.val, [root.val])
return res
class Solution(object):
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
def dfs(node, cursum, path):
if not node.left and not node.right:
if cursum == node.val:
path.append(node.val)
res.append(path)
return
if node.left:
dfs(node.left, cursum-node.val, path + [node.val])
if node.right:
dfs(node.right, cursum-node.val, path + [node.val])
if not root:
return []
res = []
dfs(root, sum, [])
return res
![](https://i.loli.net/2018/11/17/5beff4d639cbb.jpg)
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法