0

これがどのように機能していないのかわかりません。

Node* BST::Minimum(Node *curr) {

    if (curr->left != NULL) {
        Minimum(curr->left);
    }

    return curr;

}

つまり、私はすでにうまく挿入し、printpostorder、inorderr、preorderfineを実行しました。

私は愚かなことをしていますか?これはルートノードを出力するだけです。

4

1 に答える 1

2

あなたはその戻り値を呼び出しMinimumて捨てます。あなたが欲しいreturn Minimum(curr->left);

ちなみに、次のように、再帰的ではなく反復的にこれを行うことを強くお勧めします。

  Node* node = curr;
  while (node->left != NULL)
      node = node->left;
  return node;
于 2012-12-10T14:50:39.720 に答える