文章目录
1. 题目描述
2. 解题思路
简单粗暴的写法,就是从头到尾挨个将所有结点的指向翻转即可。需要注意的是,翻转之后会失去原有指向的结点,所以需要提前保存。
具体做法就是,使用cur标记当前结点,代表这我们将要翻转这个结点的指向,prev指向它的前面的一个结点,next保存它后面的一个结点,然后循环修改cur的指向结点就可以了。
3. 代码实现
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
ListNode* ReverseList(ListNode* head) {
if(head == nullptr) return head;
ListNode* prev = nullptr, *cur = head, *next = cur->next;
while(cur)
{
cur->next = prev;
prev = cur;
cur = next;
if(next)
next = next->next;
}
return prev;
}
};
标签:结点,ListNode,cur,head,next,链表,牛客,prev,TOP101
From: https://blog.csdn.net/qq_62321047/article/details/140449432