当前位置: 首页 > 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.xdnf.cn/news/247051.html

相关文章:

  • 【CV数据集】DIOR遥感目标检测数据集(含处理好的YOLO、COCO、VOC格式和相关配置文件下载链接)
  • 响应式布局,在飞帆平台中如此简单
  • 文件包含漏洞学习
  • PostgreSQL:pgAdmin 4 使用教程
  • 手撕哈希表
  • Android 移动开发:ProgressBar (水平进度条)
  • 【LeetCode Hot100】回溯篇
  • cua: 为 AI 智能体提供高性能虚拟环境
  • GTA5(传承/增强) 13980+真车 超跑 大型载具MOD整合包+最新GTA6大型地图MOD 5月最新更新
  • PyTorch 2.0编译器技术深度解析:如何自动生成高性能CUDA代码
  • 【Bootstrap V4系列】学习入门教程之 页面内容排版
  • 图像加密算法概述
  • Elsevier latex报错Paragraph ended before \@citex was complete.<to be read again>
  • Vue3 + OpenLayers 企业级应用进阶
  • Linux 第六讲 --- 工具篇(一)yum/apt与vim
  • 哈希表笔记(四)Redis对比Java总结
  • YOLOv8模型训练过程
  • Python与MySQL高效集成指南:从基础到高级实践
  • Hibernate与MybatisPlus的混用问题(Invalid bound statement (not found))
  • (C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • 恒流源电路
  • RAG工程-基于LangChain 实现 Advanced RAG(预检索-查询优化)(下)
  • 前端HTML基础知识
  • 【大模型面试每日一题】Day 5:GQA vs MHA效率对比
  • CV中常用Backbone-2:ConvNeXt模型详解
  • 微软推出数款Phi 4“开放式”人工智能模型
  • VB.net序列化和反序列化的使用方法和实用场景
  • NUS:多模态多视角理解评估
  • 攻防世界 - Misc - Level 6 | Wireshark
  • jupyterlab建议安装的两个插件