112.路径总和

class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 这道题就是用深搜算法来做的,只要找出一个和为sum的就可以
class Solution:
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
# 定义一个变量,用来存放每次求出的和
num_sum = 0
return self.dfs(root,num_sum,sum)
# 深搜函数
def dfs(self,root,num_sum,sum):
# 这条语句是用来判断根节点是否为空的。
if not root: return False
num_sum += root.val
# 注意这里,不能遍历到叶子节点,因为那样就会返回False。
if not root.left and not root.right and num_sum == sum :
return True
# 注意这里一定是or,
return self.dfs(root.left,num_sum,sum) or self.dfs(root.right,num_sum,sum)

你可能感兴趣的:(112.路径总和)