题意:判断是否存在从根结点到叶结点,路上结点之和为所给的值的路径。
思路:DFS。
class Solution {
public:
bool hasPathSum(TreeNode* root, int sum) {
if(root == NULL) return false;
sum -= root->val;
bool leftmark = false;
bool rightmark = false;
if(root->left == NULL && root->right == NULL && sum == 0) return true;
if(root->left) {
//if(sum == 0) leftmark =false;
leftmark = hasPathSum(root->left, sum);
}
if(root->right) {
//if(sum == 0) rightmark = false;
rightmark = hasPathSum(root->right, sum);
}
if(leftmark || rightmark) return true;
else return false;
}
};

本文介绍了一种使用深度优先搜索(DFS)算法来解决特定二叉树问题的方法:判断是否存在一条从根节点到叶子节点的路径,使得路径上节点值的总和等于给定的目标值。通过递归实现,对每个节点进行遍历并更新目标值。
1199

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



