Merge k Sorted Lists
来源:互联网 发布:淘宝网羊毛衫烟火726 编辑:程序博客网 时间:2024/06/05 20:34
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* merge(vector<ListNode*> &lists, int left, int right) { if (left > right) { return NULL; } if (left == right) { return lists[left]; } int mid = left + (right-left)/2; ListNode *first = merge(lists, left, mid); ListNode *second = merge(lists, mid+1, right); if (first == NULL) { return second; } if (second == NULL) { return first; } ListNode *head = NULL; ListNode *prev = NULL; if (first->val < second->val) { head = first; first = first->next; } else { head = second; second = second->next; } prev = head; while (first && second) { if (first->val < second->val) { prev->next = first; prev = first; first = first->next; } else { prev->next = second; prev = second; second = second->next; } } if (first) { prev->next = first; } else { prev->next = second; } return head; } ListNode* mergeKLists(vector<ListNode*>& lists) { int size = lists.size(); if (size < 1) { return NULL; } return merge(lists, 0, size-1); }};
0 0
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge K sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- JAVA菜鸟入门(11) 基本类型
- LaTeX新人教程,30分钟从完全陌生到基本入门
- HashMap详解
- setsockopt()用法
- 高性能Mysql——Mysql的整体架构简介
- Merge k Sorted Lists
- POJ 1751Highways Kruskal求解
- Java EE 7与Angular JS(1)
- 分布式编程初体验
- 实验楼的laravel 4.2 blog 教程(七)完结
- 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part 1 – 开篇与前2天
- iOS学习过程回顾
- GIS信息关联规则挖掘——Apriori算法的实现(上)
- Aexi(5)-Glyph的事件处理