LeetCode HOT 100 —— 206. 反转链表

93 阅读1分钟

LeetCode HOT 100 —— 206. 反转链表

链表

题目描述

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

image.png

进阶: 链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

解题思路

双指针:cur 指针指向头节点,pre 指向 null ,当 cur 指向 null 结束循环。创建一个变量 next 存储 cur 的指向,然后将 cur 的指向改为 prepre 指向 curcur 再指向刚才存储的 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
};