0

リンクリストを逆にして、実行の問題を見つけようとしています。コードは、表示時にエラーを生成するだけです。表示時に無限ループに入ります。私には正しいステップがありますか?

void Header::reverse()
{
    Node* nodePtr = head;
    Node* first = head;
    Node* temp = NULL;
    while(nodePtr)
    {
        temp = nodePtr;
        nodePtr = nodePtr->next;
        temp->next = first;
        first = temp;
    }
    head = first;
}

これが私のクラスコードの一部です...。

enter code here
class Header
{
 private:
  struct Node
   {
 Node* next;
 int value;
   };
 Node* head;

....。

誰かが私がここで間違っていることを教えてもらえますか?

4

1 に答える 1

1

最初は開始時にNULLである必要があります。そうでない場合、最初の反復では基本的に実行します

head->next = head;
于 2013-03-22T14:01:34.337 に答える