Blind75 - Reverse Linked List
Question
Given the head
of a singly linked list, reversed 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
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, curr = None, head
while curr:
next_curr = curr.next
curr.next = prev
prev = curr
curr = next_curr
return prev
Time/Space Complexity
- Time Complexity: O(n)
- Space Complexity: O(1)
Leave a comment