The Merge k
Sorted Lists is:
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
In this problem, the sorted lists are stored in a vector, i.e. vector<ListNode*>
. Assume the longest list contains n
elements.
Naive Method
The naive method of merging k
sorted lists is: iteratively compare the head elements of the k
lists, find the smallest node, append this node to the merged list and forward that list by one step. Then repeat above step until all lists reach the end. Obviously, since in every iteration k
comparisons are needed, and the longest list has n
elements, therefore, the time complexity is
O(knk)
- the worst case is all lists have n
elements, so for the total nk
elements, totally
knk
comparisons are needed to merge them into one list.