/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (head == nullptr)
return head;
//快慢双指针
//直接一个一个结点的反转
ListNode* cur = NULL, *NEXT = head;
while (NEXT != NULL)
{
ListNode* tmp = NEXT->next;//tmp临时指针,存放未被反转的链表,防止丢失
NEXT->next = cur;
cur = NEXT;
NEXT = tmp;
}
return cur;
}
};
相关文章
- C#LeetCode刷题之#206-反转链表(Reverse Linked List)
- Leetcode 206题 反转链表(Reverse Linked List)Java语言求解
- Leetcode92. Reverse Linked List II反转链表
- [LeetCode]92. Reverse Linked List II反转部分链表
- 代码随想录算法训练3day| 链表理论基础 、203.移除链表元素、707.设计链表 、 206.反转链表。
- 代码随想录算法训练营Day 3|LeetCode203 移除链表元素、Leetcode707 设计链表、Leetcode206 反转链表
- 链表总结(有点详细!!!)----算法总结系列
- 数据结构作业——P53算法设计题(6):设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点
- 设计一个算法,通过一趟遍历在单链表确定最大的结点
- 设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点。