思路
这道题在遍历二叉树的同时记录路径上节点的和,再判断有没有再遍历到叶子节点时路径上节点的和等于目标数即可。
代码
cpp
int a;
bool bl(TreeNode* b,int s) {
if(!b) {
return 0;
}
if(!b->left&&!b->right&&s+b->val==a) {
return 1;
}
return bl(b->left,s+b->val)||bl(b->right,s+b->val);
}
bool hasPathSum(TreeNode* r, int t) {
a=t;
return bl(r,0)&&r;
}
};