class Solution:
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
if root is None:
return False
self.flag = False
def PreOrder(root, count):
if root.left is None and root.right is None:
if count == sum:
self.flag = True
if root.left:
PreOrder(root.left, count+root.left.val)
if root.right:
PreOrder(root.right, count+root.right.val)
return self.flag
return PreOrder(root, root.val)
class Solution:
def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
if root is None:
return []
self.new_tree = []
def PreOrder(root, count, path):
if root.left is None and root.right is None:
if count == sum:
self.new_tree.append(path)
if root.left:
path_l = path[:]
path_l.append(root.left.val)
PreOrder(root.left, count+root.left.val, path_l)
if root.right:
path_r = path[:]
path_r.append(root.right.val)
PreOrder(root.right, count+root.right.val, path_r)
return self.flag
PreOrder(root, root.val, [root.val])
return self.new_tree