0712更新
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def __init__(self):
self.res = 0
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
self.res = sum
return self.func(root,0)
def func(self,root,cur_res):
if root == None:
return False
elif root.left == None and root.right == None and root.val + cur_res == self.res:
return True
else:
return self.func(root.left,cur_res+root.val) or self.func(root.right,cur_res+root.val)
先序遍历即可
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
if root is None:
return False
return self.bl(root,0,sum)
def bl(self,node,suma,sum):
suma += node.val
if node.left == None and node.right == None:
print(node.val)
if suma == sum:
return True
else:
return False
else:#node的左右孩子不同时为None
if node.left is None:#
left = False
else:
left = self.bl(node.left,suma,sum)
if node.right is None:
right = False
else:
right = self.bl(node.right,suma,sum)
return left or right