其实就是一个二叉树的递归过程。只需要判断一下减去的数值到最后叶子节点的时候是否是等于目标值。
class Solution {
public:
bool hasPathSum(TreeNode* root, int sum) {
if(root == NULL) return false;
if(root->left == NULL && root->right == NULL){ //判断叶子节点
if(sum != root -> val ) return false;
else return true;
}
else
return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val);
}
};