014 · Reverse Linked List

algorithm
Published

May 7, 2026

Problem

给定一个单链表的头节点 head

请将这个链表反转,并返回反转后的头节点。

链表中的每个节点包含两个部分:

  • val:当前节点的值
  • next:指向下一个节点的指针

反转链表的意思是:原来从前往后的连接方向,都要改成从后往前。

例如:

1 -> 2 -> 3 -> 4 -> 5 -> None

反转后应该变成:

5 -> 4 -> 3 -> 2 -> 1 -> None

Examples

示例 1

Input:  head = [1,2,3,4,5]
Output: [5,4,3,2,1]

示例 2

Input:  head = [1,2]
Output: [2,1]

示例 3

Input:  head = []
Output: []

Constraints

  • 链表中节点的数量范围是 \([0, 5000]\)
  • \(-5000 \leq\) Node.val \(\leq 5000\)