题目描述
链表逆置
本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下
struct ListNode {
int data;
struct ListNode *next;
}
题目来源及自己的思路
题目来源
https://pintia.cn/problem-set...
我采用的方法是头插法(这个链表应该是没有头节点)
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
这是我自己的答案
struct ListNode reverse(struct ListNode head)
{
struct ListNode *p, *q;
p = head->next;
head->next = NULL;
while (p != NULL)
{
q = p;
p = p->next;
q->next = head;
head = q;
}
return head;
}
你期待的结果是什么?实际看到的错误信息又是什么?
百度过后貌似查到的代码都是带有头节点的头插法,我自己在草稿纸上画了几种情况也是觉得没问题,实在是没有头绪,还希望大神给我稍微指点迷津一下,谢谢呀