C语言
bool dfs(struct TreeNode *t, int val, int target) {
bool bl = false;
bool br = false;
if(t == NULL) {
return val == target;
}
if(t->left == NULL && t->right == NULL) {
return (t->val + val) == target;
}
if (t->left != NULL) {
bl = dfs(t->left, t->val + val, target);
}
if (t->right != NULL) {
br = dfs(t->right, t->val + val, target);
}
return bl | br;
}
bool hasPathSum(struct TreeNode* root, int targetSum){
if(root == NULL)
return false;
return dfs(root, 0, targetSum);
}
注意点
- 当根节点为空时,返回false;
结果
题目