[Leetcode] #23 Merge k Sorted Lists
来源:互联网 发布:vc c语言 编辑:程序博客网 时间:2024/05/04 02:10
Discription:
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Solution:
ListNode* merge(ListNode *left, ListNode *right){ListNode node(-1);ListNode *cur = &node;while (left && right){if (left->val < right->val){cur->next = left;left = left->next;}else{cur->next = right;right = right->next;}cur = cur->next;}cur->next = left ? left : right;return node.next;}ListNode* mergeKLists(vector<ListNode*>& lists, int begin, int end) {if (begin == end)return lists[begin];int mid = (begin + end) >> 1;ListNode *left = mergeKLists(lists, begin, mid);ListNode *right = mergeKLists(lists, mid + 1, end);return merge(left, right);}ListNode* mergeKLists(vector<ListNode*>& lists) {if (lists.empty()) return NULL;ListNode *head = mergeKLists(lists, 0, lists.size() - 1);return head;}
//方法二ListNode *mergeKLists(vector<ListNode *> &lists) {if (lists.empty()){return nullptr;}while (lists.size() > 1){lists.push_back(mergeTwoLists(lists[0], lists[1]));lists.erase(lists.begin());lists.erase(lists.begin());}return lists.front();}ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {if (l1 == nullptr){return l2;}if (l2 == nullptr){return l1;}if (l1->val <= l2->val){l1->next = mergeTwoLists(l1->next, l2);return l1;}else{l2->next = mergeTwoLists(l1, l2->next);return l2;}}
0 0
- LeetCode(23)Merge K Sorted Lists
- [leetcode 23] Merge k Sorted Lists
- [leetcode]23 Merge k Sorted Lists
- [#23 leetcode]Merge k Sorted Lists
- LeetCode 23 Merge k Sorted Lists
- leetcode 23 Merge k Sorted Lists
- [Leetcode 23, Hard] Merge k Sorted Lists
- Leetcode 23 Merge k Sorted Lists
- LeetCode 23 - Merge k Sorted Lists
- LeetCode 23: Merge K Sorted Lists
- leetcode-23Merge k Sorted Lists
- leetcode 23: Merge k Sorted Lists
- Leetcode 23 Merge k Sorted Lists
- LeetCode-23 Merge k Sorted Lists
- LeetCode 23: Merge k Sorted Lists
- leetcode 23:Merge k Sorted Lists
- Leetcode #23 Merge k Sorted Lists
- LeetCode(23)Merge k Sorted Lists
- android Socket实现多进程通信,互动
- 判断是否为整形、浮点形
- dfs随笔,迷宫
- XML与JSON的区别比较
- 在CMD中操作mysql数据库出现中文乱码解决方案
- [Leetcode] #23 Merge k Sorted Lists
- java日常基础知识
- JAVA三大特性
- android中如何下载文件并显示下载进度
- WebRTC入门
- 日期和字符串互转
- Android的Activity什么时候会调用onCreate()而不调用onStart()?
- POJ - 3415 Common Substrings 后缀数组+单调栈+前缀和
- sublime 汉化 Ubuntu