ツリーが 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;
}