LeetCode-112. 路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。
叶子节点 是指没有子节点的节点。
# 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:
self.flag = False
def dfs(root, sum):
if not root: return
sum = sum - root.val
if sum == 0 and root.left == None and root.right == None: return True
bo = dfs(root.left, sum)
if bo:
self.flag = True
bo = dfs(root.right, sum)
if bo:
self.flag = True
bo = dfs(root, sum)
if bo == True or self.flag == True: # bo主要是判断只有一个结点并且符合题意的情况
return True
else:
return False