逆置带头结点的单链表

题目要求逆置带头结点的单链表,求看看我写的代码错在哪里,以及怎么改,输入数据运行后没有输出。谢谢回答!

img

img

img

你将p->next = NULL后,然后让p = p->next,此时p已经为空指针,所以程序已经无法访问p->next,最后你将L->next = p;所以L->next = NULL,所以你没有输出。

void inverse(ListNode* L)
{
  ListNode* cur = L->next;
  ListNode* pre = NULL;
  while(cur)
  {
    ListNode* next = cur->next;
    cur->next = pre;
    pre = cur;
    cur = next;
  }
  L->next = pre;
}