LeetCode 206. Reverse Linked List

Description

https://leetcode.com/problems/reverse-linked-list/

Reverse a singly linked list.

Example:

Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

Follow up:

A linked list can be reversed either iteratively or recursively. Could you implement both?

Explanation

A palindrome, and its reverse, are identical to each other.

Python Solution

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def reverseList(self, head: ListNode) -> ListNode:

        prev = None
        current = head
        
        while current != None:
            temp = current.next
            current.next = prev            
            prev = current
            current = temp

        return prev
  • Time complexity: O(N).
  • Space complexity: O(1).

One Thought to “LeetCode 206. Reverse Linked List”

Leave a Reply

Your email address will not be published. Required fields are marked *