/**************************************************************************
*
* 112. [Path Sum](https://leetcode.com/problems/path-sum/)
*
* Given the root of a binary tree and an integer targetSum,
* return true if the tree has a root-to-leaf path such that
* adding up all the values along the path equals targetSum.
*
* A leaf is a node with no children.
*
* Example:
* Given the below binary tree and sum = 22,
*
* 5
* / \
* 4 8
* / / \
* 11 13 4
* / \ \
* 7 2 1
*
* return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.
*
**************************************************************************/
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool hasPathSum(struct TreeNode* root, int targetSum){
if (NULL == root) return false;
if (NULL == root->left && NULL == root->right)
return targetSum == root->val;
return hasPathSum(root->left, targetSum - root->val) || \
hasPathSum(root->right, targetSum - root->val);
}