Tutorialspoint
Problem
Solution
Submissions

Merge K Sorted Lists

Certification: Advanced Level Accuracy: 0% Submissions: 0 Points: 15

Write a C program to merge k sorted linked lists and return it as one sorted list. You are given an array of k linked-lists, each linked-list is sorted in ascending order. Merge all the linked-lists into one sorted linked-list and return it.

Example 1
  • Input: lists = [[1,4,5],[1,3,4],[2,6]]
  • Output: [1,1,2,3,4,4,5,6]
  • Explanation:
    • The linked-lists are: [1→4→5, 1→3→4, 2→6].
    • Merging them into one sorted list: 1→1→2→3→4→4→5→6.
    • Therefore, the result is [1,1,2,3,4,4,5,6]
Example 2
  • Input: lists = []
  • Output: []
  • Explanation:
    • No linked lists are provided.
    • Return NULL (empty list).
    • Therefore, the result is empty
Constraints
  • k == lists.length
  • 0 ≤ k ≤ 10^4
  • 0 ≤ lists[i].length ≤ 500
  • -10^4 ≤ lists[i][j] ≤ 10^4
  • lists[i] is sorted in ascending order
  • The sum of lists[i].length will not exceed 10^4
  • Time Complexity: O(N log k) where N is total number of nodes
  • Space Complexity: O(1)
Linked ListAlgorithmsFacebookAdobe
Editorial

Login to view the detailed solution and explanation for this problem.

My Submissions
All Solutions
Lang Status Date Code
You do not have any submissions for this problem.
User Lang Status Date Code
No submissions found.

Please Login to continue
Solve Problems

 
 
 
Output Window

Don't have an account? Register

Solution Hints

  • Use divide and conquer approach to merge lists efficiently
  • Merge lists in pairs until only one list remains
  • Use a helper function to merge two sorted linked lists
  • Continue pairing and merging until all lists are combined
  • Handle edge cases like empty lists and single list

Steps to solve by this approach:

 Step 1: Handle base cases - return NULL for empty array, return single list for array of size 1
 Step 2: Use divide and conquer approach by pairing adjacent lists
 Step 3: Merge each pair of lists using mergeTwoLists helper function
 Step 4: Update the lists array with merged results and reduce the size
 Step 5: Continue the process until only one merged list remains
 Step 6: In mergeTwoLists, use dummy node technique for easier list manipulation
 Step 7: Return the final merged list which contains all elements in sorted order

Submitted Code :