题目链接:Merge k Sorted Lists
- 题目描述:
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
(1)思路:设置一个表示首最小值的变量,已经一个记录最小值位置的变量,然后循环整个lists,找到已经排好序的linked list中最小的起始值,在循环结束后赋给新链表的首,然后继续用mergeKLists进行排序连接输出。
(2)代码:
class Solution {
public:
ListNode* mergeKLists(vector<ListNode*>& lists) {
int min = INT_MAX, d = -1;
for (int i = 0; i < lists.size(); i++)
if (lists[i] != NULL && lists[i]->val <= min) {
min = lists[i]->val; d = i;
}
if (d == -1) return NULL;
ListNode *p = lists[d];
lists[d] = lists[d]->next;
p->next = mergeKLists(lists);
return p;
}
};