[LeetCode OJ]Merge k Sorted Lists
来源:互联网 发布:pr软件图标 编辑:程序博客网 时间:2024/06/03 20:01
【问题描述】
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
问题来源:Merge k Sorted Lists
【解题分析】
将k个有序的数组合并成一个有序的数组,将其分而治之,每次只比较两个数组,简易图为:
如此,我们只需重复将两个数组合并为一个数组。
假设有两个数组A1和A2,比较两个数组的元素A1[i]和A2[j],将较小的元素放入新数组,如果A1[i]小,则i++;如果A2[j]小,则j++,再接着比较A1[i]和A2[j],直到一个数组全部进行了比较。
【源代码】
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* mergeKLists(vector<ListNode*>& lists) { ListNode* result = NULL; int i = 0; while (i < lists.size()) { MergeTwoLists(result,lists[i]); i++; } return result; }private:void MergeTwoLists(ListNode* &l1, ListNode* l2) {ListNode* newlist = new ListNode(0);ListNode* phead = newlist;while (l1 != NULL && l2 != NULL) { if (l1->val < l2->val) {newlist->next = l1;newlist = newlist->next;l1 = l1->next; } else { newlist->next = l2; newlist = newlist->next; l2 = l2->next; }}if (l1 != NULL) { newlist->next = l1;}if (l2 != NULL) { newlist->next = l2;}l1 = phead->next;}};
0 0
- LeetCode OJ:Merge k Sorted Lists
- LeetCode OJ - Merge k Sorted Lists
- LeetCode OJ Merge k Sorted Lists
- LeetCode OJ-23-Merge k Sorted Lists
- [LeetCode OJ]Merge k Sorted Lists
- leetcode oj java 23. Merge k Sorted Lists
- Leetcode OJ 23 Merge k Sorted Lists [Hard]
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode - Merge k Sorted Lists
- TestNg使用及TestNg用例管理
- 0309JS
- C++中多个类继承时构造函数与析构函数的调用顺序
- hdu5732(树哈希+树的重构+树的重心)
- LeetCode算法题——ZigZag Conversion
- [LeetCode OJ]Merge k Sorted Lists
- lcd1602
- 有点烦躁
- override onMeasure()
- 基于Java EE新闻管理系统的设计与实现
- root用户和sudo使用root权限的区别
- POJ
- java中的正则表达式总结
- DB2 自动存储表空间(Automatic Storage)增加和删除存储路径