Reverse a singly linked list.
Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULL
A linked list can be reversed either iteratively or recursively. Could you implement both?
A palindrome, and its reverse, are identical to each other.
# 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).