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
posted @ 2021-07-17 10:15  小Aer  阅读(3)  评论(0编辑  收藏  举报  来源