leetcode:Merge k Sorted Lists(按大小顺序连接k个链表)【面试算法题】
2013-09-25 23:49
483 查看
题目:Merge k sorted
linked lists and return it as one sorted list. Analyze and describe its complexity.
题意:把k个排序成一个有序链表。
用优先队列先把k个链表遍历一遍把值存起来,在建一个新链表吧数从优先队列里一个个放进去,注意空指针的判断。
linked lists and return it as one sorted list. Analyze and describe its complexity.
题意:把k个排序成一个有序链表。
用优先队列先把k个链表遍历一遍把值存起来,在建一个新链表吧数从优先队列里一个个放进去,注意空指针的判断。
/** * 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) { int i,j,len=lists.size(); priority_queue<int,vector<int>,greater<int>> q; int flag=1; while(flag!=0) { flag=0; for(i=0;i<len;++i) { if(lists[i]) { flag=1; q.push(lists[i]->val); lists[i]=lists[i]->next; } } } if(q.empty())return NULL; ListNode *root,*now; root=new ListNode(q.top()); root->next=NULL; now=root; q.pop(); while(!q.empty()) { now->next=new ListNode(q.top()); now=now->next; q.pop(); now->next=NULL; } return root; } };
相关文章推荐
- 【leetcode】Merge k Sorted Lists(按大小顺序连接k个链表)
- leetcode:Merge Two Sorted Lists (链接两个有序链表)【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【021-Merge Two Sorted Lists(合并两个排好序的单链表)】
- 【LeetCode-面试算法经典-Java实现】【023-Merge k Sorted Lists(合并k个排好的的单链表)】
- Leetcode 23. Merge k Sorted Lists合并k个排序链表
- LeetCode-Merge k Sorted Lists-合并k个排序链表-自底向上归并排序+链表操作
- Merge k Sorted Lists 合并k个有序链表@LeetCode
- LeetCodet题解--23. Merge k Sorted Lists(合并K个已排序的链表)
- LeetCode 21 Merge Two Sorted Lists 把两个链表有序连接
- LeetCode 23 Merge k Sorted Lists(合并K个已排序链表)
- [Leetcode] Merge k sorted lists 合并k个已排序的链表
- LeetCode 23 Merge k Sorted Lists(合并k个有序链表)
- leetcode_效率题解_23. Merge k Sorted Lists(合并k个有序链表)
- leetCode 23. Merge k Sorted Lists (合并k个排序链表) 解题思路和方法
- Leetcode Merge k Sorted Lists 合并k个链表
- [LeetCode] 23. Merge k Sorted Lists 合并k个有序链表
- LeetCode | Merge k Sorted Lists(归并k个链表)
- 合并K个有序链表(LeetCode:Merge k Sorted Lists)
- [LeetCode] Merge k Sorted Lists 合并k个有序链表
- [LeetCode23]Merge k Sorted Lists(合并k个有序链表)