Search⌘ K
AI Features

Merge K Sorted Lists

Explore how to merge multiple sorted linked lists into a single sorted list using the k-way merge technique. Understand the constraints and develop a solution to combine k sorted lists efficiently, preparing you to tackle similar coding interview challenges.

Statement

You are given an array, lists, containing k singly linked lists. Each of these linked lists is individually sorted in ascending order.

Your task is to merge all k linked lists into a single sorted linked list in ascending order and return the merged list.

Constraints:

  • k ==== lists.length

  • 00 \leq k 103\leq 10^3

  • 00 \leq lists[i].length 500\leq 500

  • 103-10^3 \leq lists[i][j] 103\leq 10^3

  • Each lists[i] is sorted in ascending order.

  • The sum of all lists[i].length will not exceed 10310^3.

Examples

canvasAnimation-image
1 / 3

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Merge K Sorted Lists

1.

What is the output if the following array is given as input?

lists = [
               1 → 2 → 3 → NULL,
               12 → 56 → 200 → NULL,
               -10 → -2 → 5 → NULL
            ]

A.

1 → 2 → 3 → 12 → 56 → 200 → -10 → -2 → 5 → NULL

B.

1 → 2 → 3 → -10 → -2 → 5 → 12 → 56 → 200 → NULL

C.

-10 → -2 → 1 → 2 → 3 → 5 → 12 → 56 → 200 → NULL

D.

-10 → -2 → 5 → 1 → 2 → 3 → 12 → 56 → 200 → NULL


1 / 3

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5
6

Try it yourself

Implement your solution in the following coding playground.

JavaScript
usercode > Solution.js
// Definition for a Linked List node
// class ListNode {
// constructor(val = 0, next = null) {
// this.val = val;
// this.next = next;
// }
// }
import {ListNode} from './ds_v1/LinkedList.js';
function mergeKLists(lists){
// Replace this placeholder return statement with your code
return lists[0]
}
export {
mergeKLists
};
Merge K Sorted Lists