Leetcode112_Path Sum(思路纠正+书写习惯)
发布日期:2021-05-08 11:10:44 浏览次数:21 分类:精选文章

本文共 730 字,大约阅读时间需要 2 分钟。

递归方法的正确实现:

思路

采用递归依次对路径求和,正确的递归方法是减去路径上的节点值,避免重复累加。

修改代码:

class Solution {
public:
bool hasPathSum(TreeNode* root, int sum) {
if (!root) return false;
if (root->left == nullptr && root->right == nullptr) {
return sum == root->val;
}
return hasPathSum(root->left, sum - root->val) ||
hasPathSum(root->right, sum - root->val);
}
};

注意:

1. 检查节点是否为空时,直接返回false。
2. 叶子节点时,判断是否等于sum。
3. 递归调用时,减去当前节点的值,避免重复累加。
4. 如果sum为负数,提前返回false。

同样可以使用广度优先搜索,使用队列来判断路径和。

上一篇:Leetcode 102题.从中序与后序遍历序列构造二叉树
下一篇:力扣101_对称二叉树Symmetric_Tree

发表评论

最新留言

很好
[***.229.124.182]2025年04月03日 23时33分02秒