Skip to content
BASA DSA

Merge K Sorted Lists

HardLinked List

Merge k sorted acyclic linked lists into one sorted linked list and return its head. Empty lists are allowed.

Example 1

Argument 1, list 1: next pointers; tail points to null.Argument 1, list 1: next pointers; tail points to null. Vertices: node 0: 1, node 1: 6. Edges: node 0 (1) → node 1 (6).16
Argument 1, list 1: next pointers; tail points to null.

Argument 1, list 2: next pointers; tail points to null.Argument 1, list 2: next pointers; tail points to null. Vertices: node 0: 2, node 1: 4. Edges: node 0 (2) → node 1 (4).24
Argument 1, list 2: next pointers; tail points to null.

Argument 1, list 3: next pointers; tail points to null. No nodes or connections.
Argument 1, list 4: next pointers; tail points to null.Argument 1, list 4: next pointers; tail points to null. Vertices: node 0: 0, node 1: 8. Edges: node 0 (0) → node 1 (8).08
Argument 1, list 4: next pointers; tail points to null.

Input
lists = [[1,6],[2,4],[],[0,8]]
Output
[0,1,2,4,6,8]

Explanation

Merge four streams, skipping the empty one, to obtain 0,1,2,4,6,8.

Example 2

Input
lists = []
Output
null

Explanation

There are no lists to merge.

Example 3

Argument 1, list 1: next pointers; tail points to null. No nodes or connections.
Argument 1, list 2: next pointers; tail points to null. No nodes or connections.
Input
lists = [[],[]]
Output
null

Explanation

Several empty lists still produce an empty result.

Example 4

Argument 1, list 1: next pointers; tail points to null.Argument 1, list 1: next pointers; tail points to null. Vertices: node 0: 1, node 1: 1. Edges: node 0 (1) → node 1 (1).11
Argument 1, list 1: next pointers; tail points to null.

Argument 1, list 2: next pointers; tail points to null.Argument 1, list 2: next pointers; tail points to null. Vertices: node 0: 1, node 1: 2. Edges: node 0 (1) → node 1 (2).12
Argument 1, list 2: next pointers; tail points to null.

Input
lists = [[1,1],[1,2]]
Output
[1,1,1,2]

Explanation

All three occurrences of 1 must survive the merge, including equal values from different lists; 2 follows them.

Constraints

  • 0 <= k <= 10000
  • Total number of nodes <= 10000
  • Each list is nondecreasing

Function contractmergeKListsArguments: list[]
Loading draft…
SolutionRuns on your device
Loading draft…