在这里插入代码片
用一个队列记录大于x的链表 先入先出 即可保证相对位置不变
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def __init__(self): self.queue = [] def partition(self, head: ListNode, x: int) -> ListNode: faker = ListNode('skt') faker.next = head last = faker cur = head while cur != None: if cur.val >= x: self.queue.append(cur) if cur.next != None: cur = cur.next else: break else:#cur.val < x last.next = cur last = cur cur = cur.next while self.queue != []: thisnode = self.queue.pop(0) last.next = thisnode last = thisnode last.next = None return faker.next