LeetCode 206 反转链表
题目描述
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
描述
- 提示:
- 链表中节点的数目范围是 [0, 5000]
- -5000 <= Node.val <= 5000
思路
反转链表时,需要用一个nxt变量存储当前结点下一个结点的位置,否则反转完找不到后面的指针,遍历完链表后,pre指针指向最后一个元素,cur指向最后一个元素的后面一个。
代码
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *pre = nullptr, *cur = head;
while (cur != nullptr) {
ListNode *nxt = cur->next;
cur->next = pre;
pre = cur;
cur = nxt;
}
return pre;
}
};