```
bool hasPathSum(TreeNode *root, int sum)
{
if (root == nullptr)
return false;
if (root->left == nullptr && root->right == nullptr)
return (sum - root->val == 0);
else
return (hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val));
}
```