bool IsBST(BinTree T)
{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