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 true;
return false;
}
if(root->left!=NULL && root->right!=NULL)
return hasPathSum(root->left,sum - root->val) || hasPathSum(root->right,sum - root->val);
if(root->left!=NULL)
return hasPathSum(root->left,sum - root->val);
if(root->right!=NULL)
return hasPathSum(root->right,sum - root->val);
}
};
public:
bool hasPathSum(TreeNode* root, int sum) {
if(root==NULL) return false;
if(root->left==NULL && root->right==NULL){
if(sum == root->val) return true;
return false;
}
if(root->left!=NULL && root->right!=NULL)
return hasPathSum(root->left,sum - root->val) || hasPathSum(root->right,sum - root->val);
if(root->left!=NULL)
return hasPathSum(root->left,sum - root->val);
if(root->right!=NULL)
return hasPathSum(root->right,sum - root->val);
}
};