问题概述
给定一个二叉树的根节点 root 和一个整数 targetSum,如果树中存在 根到叶子 的路径,使得路径上所有节点值的和等于 targetSum,则返回 true。
叶子 是指没有子节点的节点。
可视化说明
示例 1:路径总和 = 22(输出:true)
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
路径:5 → 4 → 11 → 2
总和:5 + 4 + 11 + 2 = 22 ✓
示例 2:路径总和 = 5(输出:false)
1
/ \
2 3
路径:
- 1 → 2 = 3 ≠ 5
- 1 → 3 = 4 ≠ 5
没有路径总和为 5 ✗
关键点
- 根到叶子路径:必须从根开始,到叶子结束
- 叶子节点:没有子节点(左右子节点都为 None)
- 路径总和:路径上所有节点值的和
解法 1:递归(DFS)- 推荐
工作原理
递归检查是否存在从当前节点到叶子的路径,其总和等于剩余目标值:
class Solution:
def hasPathSum(self, root, targetSum):
if</

923

被折叠的 条评论
为什么被折叠?



