leetcode题解c++ | 23. Merge k Sorted Lists
来源:互联网 发布:人工智能研究生 编辑:程序博客网 时间:2024/05/29 19:38
题目:https://leetcode.com/problems/merge-k-sorted-lists/#/description
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
分析:
合并k个有序链表,其本质就是合并2个有序链表(用递归代码会更简洁),然后作k-1次就可以了。如果每次合并的链表是最短的,那应该时间最短,这个可以用小根堆实现(我的版本没有实现这个优化)。
c++实现:
class Solution {public: ListNode* mergeTwoLists(ListNode *l1, ListNode *l2) { if(l1==NULL && l2==NULL) return NULL; ListNode head(1); ListNode *p = &head; while(l1!=NULL && l2!=NULL) { if(l1->val < l2->val) { p->next = l1; p = p->next; l1 = l1->next; } else { p->next = l2; p = p->next; l2 = l2->next; } p->next = NULL; } if(l1!=NULL) p->next = l1; else p->next = l2; return head.next; } ListNode* mergeKLists(vector<ListNode*>& lists) { if(lists.size()==0) return NULL; while(lists.size()>1) { lists.push_back(mergeTwoLists(lists[0],lists[1])); lists.erase(lists.begin()); lists.erase(lists.begin()); } return lists[0]; }};
合并两个链表的递归版
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { if(l1 == nullptr){ return l2; } if(l2 == nullptr){ return l1; } if(l1->val <= l2->val){ l1->next = mergeTwoLists(l1->next, l2); return l1; } else{ l2->next = mergeTwoLists(l1, l2->next); return l2; }}
0 0
- Leetcode题解-23. Merge k Sorted Lists
- leetcode题解-23. Merge k Sorted Lists
- LeetCode题解:Merge k Sorted Lists
- leetcode题解c++ | 23. Merge k Sorted Lists
- 【LeetCode】 23. Merge k Sorted Lists C语言
- leetcode 23. LeetCode Merge k Sorted Lists
- [LeetCode]23.Merge k Sorted Lists
- LeetCode --- 23. Merge k Sorted Lists
- LeetCode 23.Merge k Sorted Lists
- [Leetcode] 23. Merge k Sorted Lists
- 【LeetCode】23.Merge k Sorted Lists
- [leetcode] 23.Merge k Sorted Lists
- Leetcode-23.Merge k Sorted Lists
- [Leetcode]23. Merge k Sorted Lists @python
- leetcode 23. Merge k Sorted Lists
- leetcode 23. Merge k Sorted Lists
- leetcode 23. Merge k Sorted Lists
- LeetCode 23. Merge k Sorted Lists
- 整理回忆那些年做过的网站
- python之numpy的安装
- NPM功能介绍
- HTML5常见问题(富文本)
- 一些关于Web前端的小tips
- leetcode题解c++ | 23. Merge k Sorted Lists
- 前端精选链接
- python与opencv的结合之人脸识别值
- bzoj3583 杰杰的女性朋友
- 电赛准备
- 微信小程序用户名、密码页面设计
- 如何理解TensorFlow中的batch和minibatch
- 如何查看QQ在线人数
- 搭建bower私服(private-bower)