Given the head of a singly linked list, reverse the list, and return the reversed list.
Runtime 0 ms Memory 14.16 MB
# Definition for singly-linked list.
class ListNode(object):
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
"""
:type head: Optional[ListNode]
:rtype: Optional[ListNode]
"""
if head is None:
return None
if head.next is None:
return head
next_node = ListNode(head.val, None)
temp = ListNode(head.val, None)
head.val = head.next.val
head.next = head.next.next
while head.next != None:
temp = ListNode(head.val,next_node)
next_node = temp
head.val = head.next.val
head.next = head.next.next
temp = ListNode(head.val, next_node)
head = temp
return head