Reorder List
class Solution:
def reorderList(self, head: Optional[ListNode]) -> None:
fast = slow = head
while fast and fast.next:
fast = fast.next.next
slow = slow.next
l2 = slow.next
slow.next = None
l1 = head
def reverse_list(node):
prev = None
curr = node
while curr:
temp = curr.next
curr.next = prev
prev = curr
curr = temp
return prev
l2 = reverse_list(l2)
while l1 and l2:
temp1 = l1.next
temp2 = l2.next
l1.next = l2
l2.next = temp1
l1 = temp1
l2 = temp2