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]
]
Solution:
# Definition for a binary tree node
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# @param root, a tree node
# @param sum, an integer
# @return a list of lists of integers
def pathSum(self, root, sum):
solution = []
self.pathSumRec(root, sum, 0, [], solution)
return solution
def pathSumRec(self, root, sum, tempSum, tempList, solution):
if root == None:
return
tempList.append(root.val)
tempSum += root.val
if root.left == None and root.right == None:
if tempSum == sum:
solution.append(list(tempList))
else:
self.pathSumRec(root.left, sum, tempSum, tempList, solution)
self.pathSumRec(root.right, sum, tempSum, tempList, solution)
tempList.pop()
No comments :
Post a Comment