Merge k sorted List
来源:互联网 发布:java中重写equals的类 编辑:程序博客网 时间:2024/06/08 19:55
问题来源: leetcode
问题描述
合并k条有序链表。
问题分析
实际上,我们只需要把这个问题简化为n次两条有序链表的合并,一切就会迎刃而解。真正困难的部分也就是链表归并的代码。两路有序链表归并的思路也不复杂,就是不断的将两条链表中小的元素取出(按照升序)组成一条新的链表。
解决代码
/** * 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) { if (lists.size() == 0) return NULL; while (lists.size() > 1) { lists.push_back(mergeList(*(lists.begin()), *((lists.begin()+1)))); lists.erase(lists.begin()); lists.erase(lists.begin()); } return lists[0]; } ListNode* mergeList(ListNode* l1, ListNode* l2) { ListNode* tmp = NULL, *tmph = NULL; while (l1 && l2) { if (l1->val < l2->val) { if (!tmp) tmph = tmp = l1; else { tmp->next = l1; tmp = tmp->next; } l1 = l1->next; } else { if (!tmp) tmph = tmp = l2; else { tmp->next = l2; tmp = tmp->next; } l2 = l2->next; } } if (tmp) tmp->next = l1 ? l1 : l2; else tmph = l1 ? l1 : l2; return tmph; }};
阅读全文
0 0
- Merge K Sorted List
- Merge K Sorted List
- Merge k sorted List
- Merge k sorted list--LeetCode
- Leetcode - Merge K sorted list
- LeetCode 23: Merge K Sorted List
- LeetCode[Linked List]: Merge k Sorted Lists
- 【Leetcode】Merge K Sorted Linked List
- merge k sorted list with iterator
- FTPrep, 23 Merge k sorted list
- 多路归并排序 merge k sorted array, merge k sorted linked list
- [LeetCode] Merge k Sorted List (priority queue, min heap, comparator)
- Java菜鸟入门(21) Merge K sorted List
- leetcode23~Merge k Sorted Lists Add to List
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge K Sorted Lists
- 盘点Word的10个快捷键方式,新手必备Word使用技巧
- 那些你不可错过的好书(持续跟新)
- 学习总结4
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 国内各地图API坐标系统比较与转换
- Merge k sorted List
- RF choke射频扼流圈介绍
- 城市交通网(动态规划,最短路径,输出最短路径)
- String StringBuilder StringBuffer
- FreeRTOS之系统配置
- 控件生命周期
- python里使用string.Template替换字符1
- 2017-9-18 【日记】关于区块链的一点理解与疑问
- PRX 设置IE浏览器代理