Search⌘ K
AI Features

Merge K Sorted Lists

Explore the K-way merge pattern to merge multiple sorted linked lists into one sorted list. Understand constraints and practice implementing an efficient solution to handle multiple lists in ascending order.

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.

Go
usercode > Solution.go
// Definition for a Linked List node
// type ListNode struct {
// Val int
// Next *ListNode
// }
package main
import (. "golang-test-code/ds_v1/LinkedList")
func mergeKLists(lists []*ListNode) *ListNode {
// Replace this placeholder return statement with your code
return nil
}
Merge K Sorted Lists