解题代码
bool Allleftislow(BinTree p, ElementType K) {
if (!p) return true;
if (p->Data < K&&Allleftislow(p->Left,K) && Allleftislow(p->Right,K)) return true;
else return false;
}
bool Allrightishigh(BinTree p, ElementType K) {
if (!p) return true;
if (p->Data > K&&Allrightishigh(p->Left, K) && Allrightishigh(p->Right, K)) return true;
else return false;
}
bool IsBST(BinTree T) {
if (!T) return true;
if (!T->Left && !T->Right) return true;
if (Allleftislow(T->Left,T->Data) && Allrightishigh(T->Right,T->Data) && IsBST(T->Left) && IsBST(T->Right)) return true;
else return false;
}
测试结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c87075fdfd721ae6d37b82cd2161250a.png)
问题整理
1.不要忘记else\><等基本问题。