1class Solution:2def reverse(self, head):3prev = None4after = None5curr = head6while curr:7after = curr.next8curr.next = prev9prev = curr10curr = after11return prev1213def find_middle(self, head):14slow = head15fast = head16while fast and fast.next:17fast = fast.next.next18slow = slow.next19return slow2021def reorderList(self, head: Optional[ListNode]) -> None:22mid = self.find_middle(head)23rev = self.reverse(mid)24first = head25second = rev2627while second.next:28temp = first.next29first.next = second30first = temp3132temp = second.next33second.next = first34second = temp