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

hot100题解 —— 23.合并K个升序链表

一、题目

二、题解

1. 思路

首先,我们之前做过两个升序链表的合并,现在的K个升序链表明显就是再次基础上的演化,那么就可以用分治法把这个问题拆解为多个“两个升序链表合并”的问题

2. 题解

/** * 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) { if(lists == null || lists.length == 0){ return null; } return merge(lists, 0, lists.length - 1); } // 分治法 private ListNode merge(ListNode[] lists, int left, int right){ if(left == right) return lists[left]; int mid = left + (right - left) / 2; ListNode l1 = merge(lists, left, mid); ListNode l2 = merge(lists, mid + 1, right); return merge2List(l1, l2); } // 两个链表的合并 private ListNode merge2List(ListNode l1, ListNode l2){ if(l1 == null) return l2; if(l2 == null) return l1; if(l1.val < l2.val){ l1.next = merge2List(l1.next, l2); return l1; } else { l2.next = merge2List(l1, l2.next); return l2; } } }
http://www.jsqmd.com/news/494873/

相关文章:

  • 使用Claude Code Agent 开发独立业务功能,文档代码全搞定
  • 【PyTorch】2.0 入门学习
  • Win11 连接某公司云电脑 MySQL 数据库教程,新手小白使用,超详细,草履虫也能学会
  • db-scheduler 支持的任务模式
  • 信安毕业设计2026项目选题建议
  • 别再踩坑了!CentOS 7 安装 MySQL 看这一篇就够
  • Synfig Studio 1.5.5 (Linux, macOS, Windows) - 开源 2D 动画软件
  • 【数据集】地级市城乡居民社保相关数据(2000-2024年)
  • 影刀自动化工作流RPA采集教程
  • Typora快速上手教学
  • 安全篇:为什么所有大模型都逃不过 Prompt Injection?一次完整的转义攻击技术分析
  • L2TP-域名配置步骤
  • Java 抽象类 相关知识点
  • 第57届家博会见!奇兵到家将助力广州家具商决胜“服务战”
  • 在储能系统中,储能变流器的三相并网电压矢量控制是实现双向充放电的关键技术。今天我们就来聊聊这个技术,顺便看看代码实现
  • 使用LangGraph构建AIAgent:RAG与长期记忆
  • 强强联手!移远通信与小牛电动达成深度战略合作,开启AI两轮出行新篇章
  • C++:命名空间与输入输出
  • C++编译期字符串处理
  • AudioTrack音频播放流程深度解析
  • 蓝牙相关技术
  • 【Linux】网络编程基础—套接字
  • 优选算法_丢失的数字_位运算_C++
  • TestTimeScaling机制深度剖析与LLM生产级加速工程实践
  • NoSQL注入
  • 写给普通人,关于网络安全行业的认识
  • 用户关注功能
  • Git急救手册:30秒拯救误操作
  • Java面试高频考点MySQL索引优化与问题处理指南
  • 【从零开始学Java | 第十一篇】包、final、权限修饰符