博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-Merge k Sorted Lists
阅读量:5165 次
发布时间:2019-06-13

本文共 1411 字,大约阅读时间需要 4 分钟。

题目链接:

https://leetcode.com/problems/merge-k-sorted-lists/

题目分析:

方法1:

可以通过分治法,首先将k条链表,分成两部分,分别对两部分进行合并,直到最后只剩下两条,可以使用merge函数对两条链表进行合并

时间复杂度分析:(待写中)

代码如下:

class Solution {public:    ListNode* mergeKLists(vector
& lists) { if(lists.empty()) { return NULL; } return mergeList(lists, 0, lists.size()-1); }private: ListNode* mergeList(vector
&lists, int l, int r) { if(l < r) { int m = (l + r) / 2; ListNode *l1 = mergeList(lists, l, m); ListNode *l2 = mergeList(lists, m+1, r); return mergeList(l1, l2); } else { return lists[l]; } } ListNode *mergeList(ListNode *l1, ListNode *l2) { ListNode dummy(-1); ListNode *p1 = l1; ListNode *p2 = l2; ListNode *p = &dummy; while(p1 != NULL && p2 != NULL) { if(p1->val < p2->val) { p->next = p1; p1 = p1->next; } else { p->next = p2; p2 = p2->next; } p = p->next; } if(p1 != NULL) { p->next = p1; } if(p2 != NULL) { p->next = p2; } return dummy.next; }};

方法2:

利用堆来实现(待写中)

转载于:https://www.cnblogs.com/shirley-ict/p/5523751.html

你可能感兴趣的文章
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
基本算法概论
查看>>
jquery动态移除/增加onclick属性详解
查看>>
JavaScript---Promise
查看>>
暖暖的感动
查看>>
Java中的日期和时间
查看>>
Django基于admin的stark组件创建(一)
查看>>
抛弃IIS,利用FastCGI让Asp.net与Nginx在一起
查看>>
C. Tanya and Toys_模拟
查看>>
springboot jar包运行中获取资源文件
查看>>
基于FPGA实现的高速串行交换模块实现方法研究
查看>>
Java Scala获取所有注解的类信息
查看>>
delphi ,安装插件
查看>>