def FindNumFromTree(root,target_number):
result = []
if not root:
return result
if not root.left and not root.right and root.val == target_number:
return [[root.val]]
else:
left = FindNumFromTree(root.left,target_number - root.val)
right = FindNumFromTree(root.right,target_number - root.val)
for item in left+right:
result.append([root.val]+item)
return result
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
root = TreeNode(8)
root.left = TreeNode(8)
root.right = TreeNode(7)
root.left.left = TreeNode(9)
root.left.right = TreeNode(2)
root.left.right.left = TreeNode(4)
root.left.right.right = TreeNode(7)
print(FindNumFromTree(root1,25))