Day20-反转链表
🔗 LeetCode 206 - Reverse Linked List
📌 题目描述
给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
🔍 示例
1 | 输入: head = [1,2,3,4,5] |
💡 解题思路
链表反转是经典题目,可通过迭代或递归实现。
迭代做法:
- 使用
prev
指针保存上一个节点; - 每次迭代,将当前节点的
next
指向prev
; - 向前推进
curr
和prev
。
✅ JavaScript 实现
1 | var reverseList = function(head) { |
✅ Swift 实现
1 | func reverseList(_ head: ListNode?) -> ListNode? { |
🧠 思考拓展
- 如何使用 递归 实现链表反转?
- 如何反转部分链表(如第 m 到 n 个节点)?
- 如何在链表反转的过程中处理带有随机指针的结构?