路径总和
如果遍历的是整棵树就不需要返回值
这里是找路径所以要返回
class Solution {
public:
bool hasPathSum(TreeNode* root, int targetSum) {
if(root==NULL) return false;
return traversal(root,targetSum-root->val);//不要忘记减去根节点的值
}
bool traversal(TreeNode *cur,int count)
{
if(!cur->left&&!cur->right&&count==0) return true;//找到了路径
if(!cur->left&&!cur->right) return false;//没找到路径
if(cur->left)
{
count-=cur->left->val;//处理逻辑
if(traversal(cur->left,count)) return true;
count+=cur->left->val;//回溯;
}
if(cur->right)
{
count-=cur->right->val;//处理逻辑
if(traversal(cur->right,count)) return true;
count+=cur->right->val;//回溯;
}
return false;
}
};