当前位置: 首页 > news >正文

美团笔试题之合并 K 个升序链表

文章目录

  • 题目详情
  • 分析
    • 暴力求解
    • 两两合并链表
  • Java完整实现代码
  • 总结

题目详情

23 美团笔试真题
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。

在这里插入图片描述

分析

暴力求解

将所有数值存入一个数组,然后数组排序,按排序值新建一个链表

两两合并链表

由于链表有序,可以先两两合并,知道只剩一个链表,即为有序链表

Java完整实现代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeKLists(ListNode[] lists) {int interval = 1;int length = lists.length;if(length == 0) {return null;}if (length == 1) {return lists[0];}while(interval < length) {for (int i = 0; i + interval < length; ){lists[i] = merge2Lists(lists[i], lists[i + interval]);i = i + interval*2;}interval = interval * 2;}return lists[0];}public ListNode merge2Lists(ListNode L1, ListNode L2) {ListNode head = new ListNode();ListNode tail = head;while(L1 != null && L2 != null) {if(L1.val <= L2.val) {tail.next = L1;L1 = L1.next;tail = tail.next;} else {tail.next = L2;L2 = L2.next;tail = tail.next;}}if(L1 == null) {tail.next = L2;} else {tail.next = L1;}return head.next;}
}

总结

两两合并链表是链表解题中常用的一个手段,要牢记并灵活使用

http://www.lryc.cn/news/144391.html

相关文章:

  • C语言(第三十一天)
  • 【C/C++】虚析构 | 抽象类
  • MySQL 的隐式转换导致诡异现象的案例一则
  • 【考研数学】概率论与数理统计 —— 第二章 | 一维随机变量及其分布(2,常见随机变量及其分布 | 随机变量函数的分布)
  • 【2023中国算力大会】《中国综合算力指数(2023年)》出炉,宁夏“资源环境”位列全国第1,“算力”跃入Top10
  • 自动设置服务器全教程
  • Mysql--技术文档--B树-数据结构的认知
  • go gin 自定义验证
  • 掉了无数头发成地中海后,我整理出了这套40+的大屏模板,快收藏!
  • 【从零开始学习JAVA | 第四十六篇】处理请求参数
  • k8s的交付与部署案例操作
  • LVS集群 (四十四)
  • stm32之DS18B20
  • Redis的数据结构与单线程架构
  • c# modbus CRC计算器(查表法)
  • 2023.08.27 学习周报
  • css元素定位:通过元素的标签或者元素的id、class属性定位,还不明白的伙计,看这个就行了!
  • 基于Spring实现博客项目
  • 数据库第十七课-------ETL任务调度系统的安装和使用
  • Qt 动态中英文切换
  • hdfs操作
  • h5分享页适配手机电脑
  • 崭新商业理念:循环购模式的价值引领-微三云门门
  • 二级MySQL(二)——编程语言,函数
  • python爬虫12:实战4
  • 系列十三、idea创建文件自动生成作者信息
  • spring websocket demo
  • C语言的发展及特点
  • Flink Kubernates Native - 入门
  • Ceph入门到精通-大流量10GB/s支持OSPF(ECMP)-LVS 集群