143-Reorder-List
Sat 17 May 2025
https://leetcode.com/problems/reorder-list
import pyutil as pyu
pyu.get_local_pyinfo()
print(pyu.ps2("python-dotenv"))
from typing import List
class Solution:
def reorderList(self, head: ListNode) -> None:
def findMid(head: ListNode):
prev = None
slow = head
fast = head
while fast and fast.next:
prev = slow
slow = slow.next
fast = fast.next.next
prev.next = None
return slow
def reverse(head: ListNode) -> ListNode:
prev = None
curr = head
while curr:
next = curr.next
curr.next = prev
prev = curr
curr = next
return prev
def merge(l1: ListNode, l2: ListNode) -> None:
while l2:
next = l1.next
l1.next = l2
l1 = l2
l2 = next
if not head or not head.next:
return
mid = findMid(head)
reversed = reverse(mid)
merge(head, reversed)
new Solution().reorderList()
Score: 5
Category: leetcode