原题传送门
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:

输入:head = [1,2]
输出:[2,1]
示例 3:
输入:head = []
输出:[]
提示:
好,看完题目的描述,我们来分析一下去求解这道题目







newnode->next = head->next;
head->next = newnode;
这里展示一下整体代码,将上面我们的解说进行代码的一个转化
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* cur = head;
ListNode* rhead = NULL;
while(cur)
{
ListNode* nextNode = cur->next; //优先保存cur的next结点
//头插
cur->next = rhead;
rhead = cur;
cur = nextNode;
}
return rhead;
}
};
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(head == NULL)
return NULL;
ListNode* prev = NULL;
ListNode* cur = head;
ListNode* nextNode = cur->next;
while(cur)
{
cur->next = prev;
//迭代
prev = cur;
cur = nextNode;
if(nextNode)
nextNode = nextNode->next;
}
return prev;
}
};
以上就是本文所要描述的所有内容,感谢您对本文的观看,如有疑问请于评论区留言或者私信我都可以🍀