Python 3.9 code for priorityqueue:
from queue import PriorityQueue
q = PriorityQueue
q.put()
q.get()
q.empty()
from queue import PriorityQueue
from dataclasses import dataclass, field
from typing import Any
@dataclass(order=True)
class PrioritizedItem:
priority: int
item: Any=field(compare=False)
#Example:
class Solution:
def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
q = PriorityQueue()
for i in range(len(lists)):
if lists[i] is not None:
item1 = PrioritizedItem(lists[i].val, item = lists[i])
q.put(item1)
ans = ListNode()
curr = ans
while not q.empty():
item_ = q.get()
v = item_.priority
l = item_.item
curr.next = ListNode(v)
curr = curr.next
l = l.next
if l:
item_ = PrioritizedItem(l.val,l)
q.put(item_)
return ans.next