Reverse a list

206. Reverse Linked List

Jimmy (xiaoke) Shen
1 min readApr 16, 2020

Iteration

# 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:
if head is None:return None
curr, prev = head, None
while curr:
nxt = curr.next
curr.next = prev
prev, curr = curr, nxt
return prev

Recursion

# 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:
if head is None:return None
def helper(curr, prev=None):
if curr is None:return prev
nxt = curr.next
curr.next = prev
return helper(nxt, curr)
return helper(head)

--

--

No responses yet