Skip to content
Leetcode
Esc
↑↓navigate↵open⌘Jpreview
On this page

206. Reverse Linked List

Given the head of a singly linked list, reverse the list, and return the reversed list

Linked 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

Approach

Solution

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        prev = None
        curr = head
        while curr:
            next_ = curr.next
            curr.next = prev
            prev = curr
            curr = next_
        return prev

Explanation

Last updated on September 24, 2026

Was this page helpful?