206. Reverse Linked List
2026/1/12小于 1 分钟约 262 字
206. Reverse Linked List
难度: Easy
题目描述
Given the head of a singly linked list, reverse the list, and return the reversed list.
Example 1:

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

Input: head = [1,2] Output: [2,1]
Example 3:
Input: head = [] Output: []
Constraints:
- The number of nodes in the list is the range
[0, 5000]. -5000 <= Node.val <= 5000
Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both?
解题思路
代码实现
解决方案
java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode currentListNode = head;
ListNode insertListNode = head.next;
currentListNode.next = null;
while (insertListNode != null) {
ListNode insert = insertListNode;
insertListNode = insertListNode.next;
insert.next = currentListNode;
currentListNode = insert;
}
return currentListNode;
}
}