Path Sum to Target in Binary Tree
Last updated
Last updated
{1,2},0false{1,2},3true# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param root TreeNode类
# @param sum int整型
# @return bool布尔型
#
class Solution:
def hasPathSum(self , root , sum ):
# write code here
#input: root, target
# idea: recursion
# 1. input: node, current target
# 2. if node is leaf node and target is 0, -> return True (found a path from root to leaf), otherwise, False
# 3. update target by target - node.val
# 4. go to left, right subtree to find the path
#
#
if not root or sum ==None:
return False
return self.findpath(root, sum)
def findpath(self, node, target):
# if node is invalid
if not node:
return False
# if node is leaf node
if node and not node.left and not node.right:
if target == node.val:
return True
return False
# exist a path
return self.findpath(node.left, target-node.val) or self.findpath(node.right, target-node.val)