leetcode 23. Merge k Sorted Lists
来源:互联网 发布:nginx日志分析 可视化 编辑:程序博客网 时间:2024/06/05 22:40
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* mergeKLists(vector<ListNode*>& lists) { if(lists.empty()){ return nullptr; } while(lists.size() > 1){ lists.push_back(mergeTwoLists(lists[0], lists[1])); lists.erase(lists.begin()); lists.erase(lists.begin()); } return lists.front(); } 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. 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
- [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
- 算法学习笔记之计算几何--三角形,多边形与圆
- glog 入门教程
- 我们应该试着踏出第一步
- svhn数据集处理
- 服务器单独运行jar包方法
- leetcode 23. Merge k Sorted Lists
- Java中使用poi导入、导出Excel
- delphi进程监测
- 系统级性能分析工具 — Perf
- 【Linux】守护进程
- if(表达式),各种表达式的区别
- java list map 去重和排序方法
- 记一次独立开发APP的感悟
- Unsupported major.minor version 51.0