我的反向单向链表函数代码有什么问题?

what's wrong with my reverse singly linked list function code?

本文关键字:什么 问题 代码 函数 链表 我的      更新时间:2023-10-16

我正试图逆转链表并发现运行它的问题。代码只是在显示它时产生错误。它在显示时进入无限循环。我的步骤对吗?

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;

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

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

head->next = head;