bool IsBST(BinTree T) { //空树 or 只有一个结点 if (T == NULL || (T->Left == NULL) && (T->Right == NULL)) return true; BinTree cur = NULL; cur = T->Left; if (cur != NULL) { while (cur->Right) cur = cur->Right; if (cur->Data > T->Data) return false; } cur = T->Right; if (cur != NULL) { while (cur->Left) cur = cur->Left; if (cur->Data < T->Data) return false; } return (IsBST(T->Left) && IsBST(T->Right)); } 二叉搜索树 左边值小 右边值大二叉搜索树的中序遍历是递增有序的二叉搜索树的X节点的左子树的最右结点是中序遍历的X结点的前驱节点 二叉搜索树的X节点的右子树的最左结点是中序遍历的X结点的后继节点 前驱节点的值要比X小 后继节点的值要比X大 但凡不符合 直接return false递归树中每一个结点 但凡不符合 return false