思路来源:
将一颗二叉搜索树转换成双向链表,既然可以转换,那么转换过程中就可以进行判断这是不是一颗二叉搜索树,注意在递归的过程中,需要将下一个函数要比较的节点传递过去,这个需要放在递归函数中进行。
tree *plistnode=nullptr;
bool issearchtree(tree *root,tree* plistnode)
{
if(root==nullptr)
{
return true;
}
issearchtree(root->left,plistnode);
tree *current=root;
if(plistnode!=nullptr)
{
if(current->data>plistnode->data)
{
return true;
}
else
{
return false;
}
plistnode=pcurrent;
issearchtree(root->right,plistnode);
}
}