这种方法对于确定树是否是 BST 是否错误?节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。并且左右子树也必须是二叉搜索树。我的代码是:
isBST(struct node* node)
{
if (node == NULL)
return 1;
if (node->left != NULL && node->left->data > node->data)
return 0;
if (node->right != NULL && node->right->data < node->data)
return 0;
if (!isBST(node->left) || !isBST(node->right))
return 0;
return 1;
}