bool dsf(TreeNode *Left,TreeNode *Right,int sum)
{
if(!Left&&!Right)
{
if(sum==0)
return 1;
else
return 0;
}
if(!Left&&Right)//左空有不空
{
return dsf(Right->left,Right->right,sum-Right->val);
}
else if(Left&&!Right)
{
return dsf(Left->left,Left->right,sum-Left->val);
}
else if(Left&&Right)
{
return dsf(Left->left,Left->right,sum-Left->val)
|| dsf(Right->left,Right->right,sum-Right->val);
}
}
bool hasPathSum(TreeNode* root, int sum)
{
if(!root)
return 0;
return dsf(root->left,root->right,sum-root->val);
}