有人可以告诉我为什么这不起作用吗?
这对我来说似乎是正确的
请有人调查一下。
我找不到我的错误。
bool checkbst(node* root,int minValue,int maxValue)
{
if(root==NULL)
{
return true;
}
else if(((root->data)>(minValue))&&
((root->data)>(maxValue))&&
(checkbst(root->left,minValue,root->data))&&
(checkbst(root->right,root->data,maxValue)))
{
return true;
}
else
{
return false;
}
}
void isbst(node* root)
{
if( checkbst(root,INT_MIN,INT_MAX))
{
cout<<"the tree is bst";
}
}
最佳答案
您在checkbst中有错字,正在检查
((root->data)>(minValue))&&((root->data)>(maxValue))
虽然应该是
((root->data)>(minValue))&&((root->data)<(maxValue))
(请注意“小于”符号)。
关于c++ - 检查二叉树是否为二叉搜索树的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40322442/