3

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

1 に答える 1