反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
图一
图二
示例 1:(图一)
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:(图二)
输入:head = [1,2]
输出:[2,1]
示例 3:
输入:head = []
输出:[]
思路一
var reverseList = function (head) {
let prev = null; // 初始化前一个节点为 null
let current = head; // 当前节点从头节点开始
while (current) {
const nextTemp = current.next; // 暂存当前节点的下一个节点
current.next = prev; // 反转当前节点的指针
prev = current; // 移动前一个节点到当前节点
current = nextTemp; // 移动到下一个节点
}
return prev; // 返回反转后的链表头节点
};
讲解
- 使用 prev 指针来存储前一个节点,初始化为 null。
- 使用 current 指针来遍历链表,从头节点开始。
- 在循环中,首先暂存当前节点的下一个节点 nextTemp。
- 将当前节点的 next 指针指向 prev,完成反转。
- 更新 prev 和 current 指针,继续遍历。
- 当遍历结束时,返回 prev,它指向新的头节点。
:反转链表&spm=1001.2101.3001.5002&articleId=141887917&d=1&t=3&u=073c45e55c444472a1719aea958c00c1)
199

被折叠的 条评论
为什么被折叠?



