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

first 在开始时必须为 NULL,否则在第一次迭代中您实际上是在做

head->next = head;
于 2013-03-22T14:01:34.337 回答