这种方法用于判断树是否为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;
}