使用PriorityQueue(优先队列),self.put()进队,self.get()优先级最低的出队
cur = ListNode(None)
dummy = cur
q = PriorityQueue()
for node in lists:
if node: q.put((node.val, node)) #将k个列表的头入队
while q.qsize() > 0:
cur.next = q.get()[1] #最小的出队
cur = cur.next
if cur.next: q.put((cur.next.val, cur.next)) #将最小的所在链表进一,利用链表有序特点
return dummy.next
2.Swap Nodes in Pairs
while cur.next and cur.next.next:
tmp0 = cur.next
tmp1 = tmp0.next
cur.next, tmp1.next, tmp0.next = tmp1, tmp0, tmp1.next #交换指针
cur = tmp0
return dummy.next