# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
# 创建优先队列来对节点进行排序,然后从优先队列不断取直到优先队列取完就ok了。
class Solution:
def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
from queue import PriorityQueue
pq = PriorityQueue()
for ll in lists:
while ll:
pq.put(ll.val)
ll = ll.next
pre_head = ListNode()
cur = pre_head
while pq.qsize() > 0:
min_val = pq.get()
temp_node = ListNode(min_val)
cur.next = temp_node
cur = cur.next
return pre_head.next
leetcode 23. 合并 K 个升序链表
于 2023-08-04 15:17:45 首次发布