23. Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
solution:
class Solution {
2
public:
3
ListNode* mergeKLists(vector<ListNode*>& lists) {
4
int min = INT_MAX, d = -1;
5
for (int i = 0; i < lists.size(); i++)
6
if (lists[i] != NULL && lists[i]->val <= min) {
7
min = lists[i]->val; d = i;
8
}
9
if (d == -1) return NULL;
10
ListNode *p = lists[d];
11
lists[d] = lists[d]->next;
12
p->next = mergeKLists(lists);
13
return p;
14
}
15
};