# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reorderList(self, head: Optional[ListNode]) -> None:
"""
Do not return anything, modify head in-place instead.
"""
fast,slow = head,head
while fast.next and fast.next.next:
fast = fast.next.next
slow = slow.next
cur = slow.next
slow.next = None
dummy = ListNode(-1)
while cur:
t = cur
cur = cur.next
t.next = dummy.next
dummy.next = t
cur1,cur2 = head,dummy.next
dummy = ListNode(-1)
tail = dummy
while cur1 and cur2:
tail.next = cur1
cur1 = cur1.next
tail = tail.next
tail.next = None
tail.next = cur2
cur2 = cur2.next
tail = tail.next
tail.next = None
if cur1:
tail.next = cur1
if cur2:
tail.next = cur2
return dummy.next
标签:dummy,head,cur2,cur1,Python,next,链表,tail,重排
From: https://www.cnblogs.com/DCFV/p/18435104