17_leetcode_merge k Sorted List
来源:互联网 发布:大数据技术研究方向 编辑:程序博客网 时间:2024/05/29 08:50
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
1:当链表数组为NULL或者只有一个链表的情况,直接返回;2:采用归并的方法合并链表数组中的链表;3:注意NULL链表的情况;4:在合并过程中,当一个链表较长的时候,处理较长的部分。
ListNode* mergeKLists(vector<ListNode* > &lists) { if(lists.size() == 0) return NULL; if(lists.size() == 1) return lists[0]; int size = (int)lists.size(); return mergeKListsCore(lists, 0, size - 1); } ListNode* mergeKListsCore(vector<ListNode* > &lists, int start, int end) { if(start == end) { return lists[start]; } int middle = (start + end) / 2; ListNode* leftList = mergeKListsCore(lists, start, middle); ListNode* rightList = mergeKListsCore(lists, middle + 1, end); if(leftList == NULL) return rightList; if(rightList == NULL) return leftList; ListNode* head = NULL; ListNode* index = NULL; ListNode* indexA = leftList; ListNode* indexB = rightList; while(indexA && indexB) { if(indexA->val < indexB->val) { if(head == NULL) { head = indexA; index = head; } else { index->next = indexA; index = index->next; } indexA = indexA->next; } else { if(head == NULL) { head = indexB; index = head; } else { index->next = indexB; index = index->next; } indexB = indexB->next; } } index->next = (indexA == NULL ? indexB : indexA); return head; }
0 0
- 17_leetcode_merge k Sorted List
- 39_leetcode_Merge Sorted Array
- 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
- 6.5-9 merge k sorted lists into one sorted list with O(n lg k)
- [LeetCode] Merge k Sorted List (priority queue, min heap, comparator)
- Java菜鸟入门(21) Merge K sorted List
- leetcode总结 -- 关于merget k sorted list问题。heap
- leetcode23~Merge k Sorted Lists Add to List
- 存储过程的优缺点及使用场景
- Java内存管理简析
- 如何在Ubuntu14.04上运行32位程序
- Java 守护线程
- 开发者揭秘Swift语言有哪些优点?
- 17_leetcode_merge k Sorted List
- Myecplise 8.6 注册代码
- 标准I/O与重定向的若干概念
- 第十五周(项目二)——用文件保存学生的名单。
- MFC ShowWindow参数
- projecteuler---->problem=20----Factorial digit sum
- C#修改系统时间
- LeetCode: Path Sum II [113]
- UVa 10340 - All in All