Skip to content

206. 反转链表

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

示例:

js
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

解题思路

迭代:

  • 遍历链表时,将当前节点的 next 指针改为指向前一个节点
  • 节点没有引用其前一个节点,因此必须事先存储其前一个节点
  • 还需要存储后一个节点。最后返回新的头引用
参考答案
ts
function reverseList(head: ListNode | null): ListNode | null {
  let pre = null;
  let current = head;
  while (current !== null) {
    const next = current.next;
    current.next = pre;
    pre = current;
    current = next;
  }
  return pre;
}