博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode学习笔记(23. 合并K个排序链表)
阅读量:4049 次
发布时间:2019-05-25

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

在这里插入图片描述

关键词:分治法,递归思想

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {
public: ListNode* mergetwo(ListNode* l1, ListNode *l2){
ListNode *out = new ListNode(0), *L; L=out; while(l1!=nullptr&&l2!=nullptr){
if(l1->val
val){
L->next=l1; L=l1; l1=l1->next; }else{
L->next =l2; L=l2; l2=l2->next; } } L->next = (l1?l1:l2); return out->next; } ListNode* merge(vector
& lists, int l, int n) {
if(l==n) return lists[l]; if(l>n) return nullptr; int mid = (l+n)>>1; return mergetwo(merge(lists, l, mid), merge(lists, mid+1, n)); } ListNode* mergeKLists(vector
& lists) {
return merge(lists, 0, lists.size()-1); }};

关键词:两两循环排序

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {
public: ListNode* mergetwo(ListNode* l1, ListNode *l2){
ListNode *out = new ListNode(0), *L; L=out; while(l1!=nullptr&&l2!=nullptr){
if(l1->val
val){
L->next=l1; L=l1; l1=l1->next; }else{
L->next =l2; L=l2; l2=l2->next; } } L->next = (l1?l1:l2); return out->next; } ListNode* mergeKLists(vector
& lists) {
ListNode *out = nullptr; for(int i=0;i

转载地址:http://vpyci.baihongyu.com/

你可能感兴趣的文章
分布式存储系统设计(1)—— 系统架构
查看>>
MySQL数据库的高可用方案总结
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
模拟屏学习资料_什么是PAL制式
查看>>
模拟屏学习资料_模拟视频 入门
查看>>
西藏之旅
查看>>
Oracle中定时执行问题
查看>>
三时业
查看>>
佛教三宝-三皈依
查看>>
杂阿含经喻世间有四等马
查看>>
考研前夜涂笔
查看>>
英语复试自我介绍
查看>>
什么是熵?
查看>>
拼凑、摘抄-评李代平的软件工程第二版
查看>>
误传了数千年的几个名句
查看>>