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

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