#leetcode刷题之路23-合并K个排序链表
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:
[
1->4->5,
1->3->4,
2->6
]
输出: 1->1->2->3->4->4->5->6
#include <iostream>
#include <vector>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
}; ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {//合并两个有序链表
ListNode*temp;
ListNode*t;
if(l1== nullptr) return l2;
if(l2== nullptr) return l1;
if(l1->val>l2->val)//把头节点值小的放前面
{
t=l1;l1=l2;l2=t;
}
ListNode*head=l1;
while(l2!= nullptr)
{
if(l1->next== nullptr)
{
l1->next=l2;
return head;
}
else if(l1->val<=l2->val&&l1->next->val>=l2->val)
{
temp=l2->next;
t=l1->next;
l1->next=l2;
l2->next=t;
l1=l2;
l2=temp;
}
else l1=l1->next;
}
return head;
} ListNode* mergeKLists(vector<ListNode*>& lists) { int len=lists.size();
if(len==) return nullptr;
ListNode* head=lists[];
if(len==) return head;
int n=;
while(n<len)//找到第一个不为空的链表,让头指针指向他
{
if(lists[n]!=nullptr)
{head=lists[n];
break;}
else n++;
}
if(n==len) return nullptr;//全为空
for(int i=n+;i<len;i++)
{
if(lists[n]== nullptr) continue;//跳过空的
head=mergeTwoLists(head,lists[i]);
}
return head;
} int main() {
std::cout << "Hello, World!" << std::endl;
return ;
}
#leetcode刷题之路23-合并K个排序链表的更多相关文章
- leecode刷题(27)-- 合并k个排序链表
leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1-> ...
- LeetCode 23. 合并K个排序链表(Merge Two Sorted Lists)
23. 合并K个排序链表 23. Merge k Sorted Lists 题目描述 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. LeetCode23. Merge k S ...
- Java实现 LeetCode 23 合并K个排序链表
23. 合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输 ...
- 【LeetCode】23.合并K个排序链表
题目描述 23.合并K个排序链表 合并k个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] ...
- Leetcode题库——23.合并k个排序链表
@author: ZZQ @software: PyCharm @file: mergeKLists.py @time: 2018/10/12 19:55 说明:合并 k 个排序链表,返回合并后的排序 ...
- [LeetCode] 23. 合并K个排序链表
题目链接: https://leetcode-cn.com/problems/merge-k-sorted-lists/ 题目描述: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂 ...
- [LeetCode]23. 合并K个排序链表(优先队列;分治待做)
题目 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1 ...
- LeetCode题解-23 合并K个排序链表 Hard
合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1-&g ...
- leetcode 23. 合并K个排序链表 JAVA
题目: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: ...
随机推荐
- SpringBoot整合Slf4j+logback日志框架
一.Slf4j简单介绍与优势 1.介绍 Slf4j的全称是Simple Loging Facade For Java(Java简单日志门面),它仅仅是一个为Java程序提供日志输出的统一接口,并不是一 ...
- Visual Studio 与 Visual C++ 关系
Visual Studio .net Visual C++ .net Visual C++ _MSC_VER 备注 Visual Studio .net 2002 Visual C++ .net ...
- Same Tree 比较两个二叉树是否完全相同
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- CALayer动画的暂停,恢复,以及结束时候的回调
CALayer动画的暂停,恢复,以及结束时候的回调 源码如下: // // ViewController.m // AnimationLineView // // Created by YouXian ...
- daD
Linux centos7环境下MySQL安装教程_Mysql_脚本之家 脚本之家 软件下载 android软件 MAC软件 驱动下载 字体下载 DLL下载 源码下载 asp源码 php源码 asp. ...
- Python学习---django下的Session操作 180205
和Cookie一样,都是用来进行用户认证.不同的是,Cookie可以吧明文/密文的信息都会KV返回给客户段,但是session可以吧用户的Value[敏感信息]保存在服务器端,安全. Django中默 ...
- mysql 基础学习1
安装得方法有很多,这里就不详细介绍了. 进入 mysql 控制台 mysql -uroot -p 查看 有哪些库 show databases; 1.创建一个库 create database tes ...
- TFS使用笔记
TFS是用来存储文件的服务器,放置不同版本的文件.因此文件的数量和内容因版本不同而不同. 在Fig-00中,服务器和本地的对应文件夹Common下的因版本不一致,所以文件数量是不一致的. Fig-00 ...
- August 03rd 2017 Week 31st Thursday
A person has at least one dream, there is a reason to be strong. 一个人至少要有一个梦想,要有一个理由去坚强. Owning a dre ...
- HTTP协议图--HTTP 工作过程
HTTP请求响应模型 HTTP通信机制是在一次完整的 HTTP 通信过程中,客户端与服务器之间将完成下列7个步骤: 建立 TCP 连接 在HTTP工作开始之前,客户端首先要 ...