class Solution(object):
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
if root == None:
return []
result = []
self.dfs(root, sum, result, [])
return result
def dfs(self, root, sum, result, level):
if root == None:
return
sum -= root.val
level.append(root.val)
if root.left == None and root.right == None:
if sum == 0:
result.append(list(level))
if root.left:
self.dfs(root.left, sum, result, level)
del level[-1]
if root.right:
self.dfs(root.right, sum, result, level)
del level[-1]