Path Sum
class Solution(object):
def hasPathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: bool
"""
res=[False]
def dfs(head,mysum,res):
if res[0]:
return
if not head.left and not head.right:
if mysum==head.val:
res[0]=True
return
else:
if head.left:
dfs(head.left,mysum-head.val,res)
if head.right:
dfs(head.right,mysum-head.val,res)
if not root:
return False
dfs(root,sum,res)
return res[0]
Path Sum II
class Solution(object):
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
self.res=[]
def dfs(head,mysum,list1):
if not head.left and not head.right:
if mysum==head.val:
self.res.append(list1+[mysum])
return
if head.left:
dfs(head.left,mysum-head.val,list1+[head.val])
if head.right:
dfs(head.right,mysum-head.val,list1+[head.val])
if not root:
return []
dfs(root,sum,[])
return self.res