Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:Given the below binary tree and
sum = 22
,
5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5] ]
Path Sum的扩展题~这儿是要求返回所有符合条件的路径~
class Solution:
# @param root, a tree node
# @param sum, an integer
# @return a list of lists of integers
def pathSum(self, root, sum):
if root is None: return []
self.res = []
self.helper(root, sum, root.val, [root.val])
return self.res
def helper(self, root, sum, curSum, tmp):
if not root.left and not root.right and sum == curSum:
self.res.append(tmp)
return
if root.left:
self.helper(root.left, sum, curSum + root.left.val, tmp + [root.left.val])
if root.right:
self.helper(root.right, sum, curSum + root.right.val, tmp + [root.right.val])