Problems

Merge K Sorted Lists

hard
hard
linked-list
heap
priority-queue
divide-and-conquer

Each row in lists serializes one sorted linked list. Return the values of the merged sorted list. Solve with the same one-current-node-per-list heap used for real ListNode chains.

Constraints

  • 0 <= k <= 10000
  • 0 <= total values <= 10000
  • Each input list is sorted

Follow-up

How would the heap entries change if inputs were actual ListNode heads?

Examples

Example 1

Input: lists = [[1,4,5],[1,3,4],[2,6]]
Output: [1,1,2,3,4,4,5,6]

Example 2

Input: lists = []
Output: []

Example 3

Input: lists = [[]]
Output: []
🔒 5 hidden

Running will execute all 8 cases, including 5 hidden ones.