https://leetcode.cn/problems/reverse-linked-list/description/
<aside> 💡
常规解法:从头开始遍历,将每一个节点的next变为其上一个节点,注意交换顺序与边界处理即可
实现方法——双指针法:使用pre和cur两个指针(pre为cur的前一个节点),逐步将cur的next改为指向pre
</aside>
ListNode* reverseList(ListNode* head) {
if (!head) {
return head;
}
ListNode* cur = head;
ListNode* pre = nullptr;
ListNode* next = head->next;
cur->next = pre;
while (next) {
pre = cur;
cur = next;
next = cur->next;
cur->next = pre;
}
return cur;
}