AcWing 3757. 重排链表
原题链接
中等
重排链表 = 倒排链表 + 合并链表
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def rearrangedList(self, node):
"""
:type node: ListNode
:rtype: void
"""
if not node.next:
return
n = 0
p = node
while p:
p = p.next
n += 1
left = (n + 1) // 2
a = head
for i in range(0, left - 1):
a = a.next
b = a.next
c = b.next
a.next = b.next = None
while c:
p = c.next
c.next = b
b = c
c = p
p, q = node, b
while q:
o = q.next
q.next = p.next
p.next = q
p = p.next.next
q = o