使用中序遍历,
保存访问过的上一个节点的值,判断当前访问的值是否大于上一个结点的值,如果大于,就满足BST的性质(因为按照中序遍历,结点是递增的)
int last = 0;
bool isBST(BSTnode *bt)
{
if(bt == NULL)
return true;
if(!isBST(bt->lc))//判断左子树
return false;
if(bt->key < last)
return false;
last = bt->key;
if(!isBST(bt->rc))//判断右子树
return false;
return true;
}