/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @param sum int整型
* @return bool布尔型
*/
bool hasPathSum(TreeNode* root, int sum) {
if(root==nullptr) return false;
cur+=root->val;
backtracking(root,sum,cur);
return res;
}
void backtracking(TreeNode* root,int target,int cur){
if(!root->left&&!root->right){
if(cur==target) res=true;
return ;
}
if(root->left&&!res){
cur+=root->left->val;
backtracking(root->left, target, cur);
cur-=root->left->val;
}
if(root->right&&!res){
cur+=root->right->val;
backtracking(root->right, target, cur);
cur-=root->right->val;
}
}
private:
int cur=0;
bool res=false;
};
NC9 二叉树中和为某一值的路径(一)(C++)- 简单、树、DFS
最新推荐文章于 2024-04-07 10:22:37 发布
本文介绍了一种使用回溯法解决二叉树路径和问题的C++实现,通过递归遍历节点,寻找从根节点到叶子节点的路径,使得路径上节点值之和等于给定的目标和。核心代码展示了如何在`Solution`类中实现`hasPathSum`方法及其辅助函数`backtracking`。
摘要由CSDN通过智能技术生成