Skip to content

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: ListNode) -> ListNode: ## sol1: # nums = []
# dummy = ListNode() # dummy.next = head

    # while head:
    #     nums.append(head.val)
    #     head = head.next

    # head = dummy.next

    # for n in nums[::-1]:
    #     head.val = n
    #     head = head.next
    # return dummy.next

    ## sol2
    def helper(prev, cur):
        if cur.next:
            tmp = cur.next
            cur.next = prev
            return helper(cur, tmp)
        else:
            cur.next = prev
            return cur
    if head:
        return helper(None, head)
    else:
        return None