题目在这:https://leetcode-cn.com/problems/path-sum/
思路分析:
给定一个值n。问有没有一条从根节点到叶子结点的路径总和等于该值。只需要从前两天的二叉树深度代码里改改就行了。。
首先明确几点个。
1.我们使用递归写法来解这道题。每次递归都是从n里减去当前结点。
2.当n减到0且左右子树都是空的时候,就说明发现了一条到叶子结点的路径,该路径上的节点和等于n。
完整代码:
def hasPathSum(self, root: TreeNode, targetSum: int) -> bool:
def hasPathSum(root, targetSum):
if not root:
return False
targetSum -= root.val
if not root.left and not root.right and targetSum == 0:
return True
return hasPathSum(root.left, targetSum) or \
hasPathSum(root.right, targetSum)
return hasPathSum(root,targetSum)