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