hasPathSum# JobHunting - 待字闺中
y*n
1 楼
LeetCode says that I am failing the test case
Input: {1,2}, 0
Output: true
Expected: false
However, I can pass it with a console assert.
bool getPathSum(TreeNode *root, int pathSum, int sum){
pathSum +=root->val;
if(NULL==root->left && NULL==root->right){//get to the leaf
return pathSum==sum;
}
bool left, right;
if(root->left){
left=getPathSum(root->left, pathSum, sum);
}
if(root->right){
right=getPathSum(root->right, pathSum, sum);
}
return left||right;
}
bool hasPathSum(TreeNode *root, int sum) {
if(NULL==root) return false;
int pathSum=0;
return getPathSum(root, pathSum, sum);
}
int main(int argc, char *argv[]) {
TreeNode* root=new TreeNode(1);
root->left=new TreeNode(2);
root->right=NULL;
assert(false==hasPathSum(root, 0));
}
Input: {1,2}, 0
Output: true
Expected: false
However, I can pass it with a console assert.
bool getPathSum(TreeNode *root, int pathSum, int sum){
pathSum +=root->val;
if(NULL==root->left && NULL==root->right){//get to the leaf
return pathSum==sum;
}
bool left, right;
if(root->left){
left=getPathSum(root->left, pathSum, sum);
}
if(root->right){
right=getPathSum(root->right, pathSum, sum);
}
return left||right;
}
bool hasPathSum(TreeNode *root, int sum) {
if(NULL==root) return false;
int pathSum=0;
return getPathSum(root, pathSum, sum);
}
int main(int argc, char *argv[]) {
TreeNode* root=new TreeNode(1);
root->left=new TreeNode(2);
root->right=NULL;
assert(false==hasPathSum(root, 0));
}