题目
思路
- 初始化三个指针:temp、pre、cur。其中 temp 用于保存当前节点的下一个节点,pre 用于保存前一个节点,cur 用于遍历链表。
- 使用循环遍历链表,将 cur 的下一个节点保存到 temp 中,然后将 cur 的 next 指向 pre,实现反转。
解题代码示例
var reverseList = function (head) {
// 如果链表为空或者只有一个节点,直接返回头节点
if(!head || !head.next) return head
// 初始化三个指针:temp、pre、cur
let temp=null
let pre=null
let cur=head
// 遍历链表,直到 cur 为空
while(cur){
// 将 cur 的下一个节点保存到 temp 中
temp = cur.next
// 将 cur 的 next 指向 pre,实现反转
cur.next=pre
// 更新 pre 和 cur 的值,继续遍历链表
pre=cur
cur=temp
}
// 返回反转后的链表头节点
return pre
};