我的反向单链表功能代码出了什么问题?

时间:2013-03-22 13:55:09

标签: c++ list linked-list reverse

我正在尝试撤消链接列表并发现运行它的问题。 代码只会在显示时产生错误。它在显示时进入无限循环。我有正确的步骤吗?

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;

.....

谁能告诉我这里我做错了什么?

1 个答案:

答案 0 :(得分:1)

首先必须为NULL,否则在第一次迭代中你基本上是

head->next = head;