The title comes from Leetcode
https://leetcode.com/problems/path-sum/
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding of all the values along the Path equals the given sum. For example:
Given the below binary tree and sum = 22,
5
/
4 8
/ // 4
/ \ + 7 2 1
Return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode (int x): Val (x), left (null), right (null) {}
*};
* *
class Solution {public
:
void Psum (TreeNode *root, int sum)
{
if (root!=null)
{
if (root->val==sum&&root->left==null&&root->right==null)
{
flag=true;
return;
}
Psum (Root->left, sum-root->val);
Psum (Root->right, sum-root->val);
return false;
}
}
BOOL Haspathsum (TreeNode *root, int sum) {
if (Root==null) return
false;
Psum (root, sum);
return flag;
}
bool flag=false;
};