给你二叉树的根节点 root
和一个表示目标和的整数 targetSum
。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum
。如果存在,返回 true
;否则,返回 false
。
叶子节点 是指没有子节点的节点。
#
# @lc app=leetcode.cn id=112 lang=python3
#
# [112] 路径总和
#
# @lc code=start
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
def subisBalanced(root,deep,target):
if root.left!=None:
deepl=deep+root.left.val
if subisBalanced(root.left,deepl,target):
return True
if root.right!=None:
deepr=deep+root.right.val
if subisBalanced(root.right,deepr,target):
return True
if root.left==None and root.right==None and deep==target:
return True
if root==None:
return False
else:
if subisBalanced(root,root.val,targetSum)==True:
return True
else:
return False
# @lc code=end