LeetCode HOT 100 —— 206. 反转链表
链表
题目描述
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
进阶: 链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?
解题思路
双指针:cur 指针指向头节点,pre 指向 null ,当 cur 指向 null 结束循环。创建一个变量 next 存储 cur 的指向,然后将 cur 的指向改为 pre,pre 指向 cur,cur 再指向刚才存储的 next。
解题代码
var reverseList = function(head) {
if(head == null) return null
let curr = head
let pre = null
while(curr) {
let next1 = curr.next
curr.next = pre
pre = curr
curr = next1
}
return pre
};