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

链表系列一>合并 k 个升序链表

目录

  • 题目:
  • 方法一解析:
  • 代码:
  • 方法二解析:
  • 代码:

题目:

链接: link这里是引用

方法一解析:

这里是引用

代码:

public ListNode mergeKLists(ListNode[] lists) {//建立小根堆PriorityQueue<ListNode> heap = new PriorityQueue<>((v1,v2)-> v1.val - v2.val);//把所有头节点放入小根堆中for(ListNode l : lists){if(l != null){heap.offer(l);}}ListNode ret = new ListNode(0);ListNode prev = ret;while(!heap.isEmpty()){ListNode t = heprev.next = t;prev.next = t;prev = t;if(t.next != null)heap.offer(t.next);}return ret.next;}

方法二解析:

这里是引用

代码:

//递归写法:public ListNode mergeKLists(ListNode[] lists) {return merge(lists,0,lists.length-1);}public ListNode merge(ListNode[] lists,int left, int right){if(left > right)return null;if(left == right)return lists[left];    //1.平分数组    int mid = (left + right) / 2;//[left,mid][mid+1,right]//2.递归处理ListNode l1 = merge(lists,left,mid);ListNode l2 = merge(lists,mid+1,right);//3.合并两个有序链表return megeToList(l1,l2);}private ListNode megeToList(ListNode l1, ListNode l2){if(l1 == null) return l2;if(l2 == null) return l1;ListNode ret = new ListNode(0);ListNode prev = ret;ListNode cur1 = l1, cur2 = l2;while(cur1 != null && cur2 != null){if(cur1.val < cur2.val){prev.next = cur1;prev = cur1;cur1 = cur1.next;}else{prev.next = cur2;prev = cur2;cur2 = cur2.next;}}if(cur1 != null) prev.next = cur1;if(cur2 != null) prev.next = cur2;return ret.next;} 
http://www.dtcms.com/a/167389.html

相关文章:

  • Sublime Text4 4192 安装和一键激活
  • 基于Redis实现-附近商铺查询
  • 在项目中如何对Map List等对象序列化及反序列化
  • 第二章 OpenCV篇-图像阈值的综合操作-Python
  • 【瑞萨RA4L1-SENSOR套件测评】LCD 实时显示 ADC 水位高度
  • vue中$set原理
  • AIO-1126-JD4蓝牙通讯(BLE)
  • Lucene并不是只有倒排索引一种数据结构,支持多种数据结构
  • Angular教程前言:历史、安装与用途
  • Webug4.0靶场通关笔记08- 第11关万能密码登录(SQL注入漏洞)
  • 数字智慧方案5968丨智慧农业产销一体化云平台建设方案(72页PPT)(文末有下载方式)
  • 【Docker】Dockerfile 使用
  • python如何把pdf转word
  • 高等数学-第七版-下册 选做记录 习题9-7
  • C++11新特性_自动类型推导_auto
  • 【RocketMQ】- 源码系列目录
  • 神经网络—损失函数
  • Windows服务器提权实战:常见方法、场景与防御指南
  • 2025五一杯C题五一杯数学建模思路代码文章教学:社交媒体平台用户分析问题
  • 【精选】基于数据挖掘的广州招聘可视化分析系统(大数据组件+Spark+Hive+MySQL+AI智能云+DeepSeek人工智能+深度学习之LSTM算法)
  • 【playwright】内网离线部署playwright
  • UE实用地编插件Physical Layout Tool
  • 深度学习-神经网络参数优化的约束与迭代策略
  • PCIe 中的 ARI 介绍
  • 2025五一数学建模ABC题选题建议,思路模型分析
  • 彩带飘落效果
  • stm32基础001(串口)
  • 基于大模型预测的输尿管癌诊疗全流程研究报告
  • 基于数字图像处理的裂缝检测与识别系统(Matlab)
  • Meta公司于2025年4月29日正式推出了全新Meta AI应用程序的首个版本