LeetCode 23. 合併K個排序連結串列
題目描述
解題思路
堆排序
將每個連結串列中元素放在一起,構造一個元素個數為k的小頂堆,每次取出堆頂元素,構成新的連結串列。
並把該元素後面的元素加入到堆中,反覆操作直到堆為空。
使用優先佇列來實現堆,可以方便運算。
程式碼實現
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
struct cmp
{
bool operator () (ListNode *a, ListNode *b)
{
return a->val > b->val;
}
};
class Solution
{
public:
ListNode* mergeKLists(vector<ListNode*>& lists)
{
priority_queue<ListNode*, vector<ListNode*>, cmp> que;
for(int i = 0; i < lists.size(); i++)
{
if(lists[i])
que.push(lists[i]);
}
ListNode *head = NULL;
ListNode *pre = NULL;
ListNode *temp = NULL;
while(!que.empty())
{
temp = que.top();
que.pop();
if(!pre) head = temp;
else pre->next = temp;
pre = temp;
if(temp->next) que.push(temp->next);
}
return head;
}
};
相關文章
- 合併K個排序連結串列排序
- 23. 合併K個元素的有序連結串列
- leetcode23. 合併K個排序連結串列LeetCode排序
- 淺談歸併排序:合併 K 個升序連結串列的歸併解法排序
- [LeetCode] Merge k Sorted Lists 合併k個有序連結串列LeetCode
- 演算法基礎~連結串列~排序連結串列的合併(k條)演算法排序
- leecode.23. 合併K個升序連結串列
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- LeetCode 之 JavaScript 解答第23題 —— 合併K個有序連結串列(Merge K Sorted Lists)LeetCodeJavaScript
- 連結串列歸併排序排序
- JZ-016-合併兩個排序的連結串列排序
- 劍指offer面試17 合併兩個排序的連結串列面試排序
- leetcode雙週賽(2)-合併兩個連結串列LeetCode
- 每日leetcode——21. 合併兩個有序連結串列LeetCode
- 連結串列合併-排序-logo列印參考排序Go
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- Leetcode 21 合併兩個有序連結串列 學習感悟LeetCode
- [每日一題] 第十八題:合併兩個排序的連結串列每日一題排序
- 【LeetCode Hot 100】21. 合併兩個有序連結串列LeetCode
- 演算法:排序連結串列:歸併排序演算法排序
- 牛客網高頻演算法題系列-BM5-合併k個已排序的連結串列演算法排序
- 劍指 Offer 25. 合併兩個排序的連結串列 JavaScript實現排序JavaScript
- 反轉連結串列、合併連結串列、樹的子結構
- [C++]歸併排序(連結串列描述)C++排序
- Fourth. LeetCode 21:MergeTwo Sorted Lists 合併兩個有序連結串列LeetCode
- [leetcode 25]. K 個一組翻轉連結串列LeetCode
- 有a,b兩個已按學號升序排序的連結串列,每個連結串列中的結點包括學號、成績。要求把兩個連結串列合併,仍按學號升序排列。...排序
- LeetCode 25. k個一組翻轉連結串列LeetCode
- 利用遞迴實現連結串列的排序(歸併排序)遞迴排序
- (連結串列)連結串列的排序問題排序
- Golang從合併連結串列聊遞迴Golang遞迴
- [LeetCode] Reverse Nodes in k-Group 每k個一組翻轉連結串列LeetCode
- 【演算法-java實現】合併兩個有序連結串列演算法Java
- K個節點翻轉連結串列
- 求n個排序連結串列的交集排序
- 牛客網高頻演算法題系列-BM4-合併兩個排序的連結串列演算法排序
- Leetcode_86_分割連結串列_連結串列LeetCode
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode