【LeetCode】【HOT】23. 合并K个升序链表

文章目录

  • 【LeetCode】【HOT】23. 合并K个升序链表


package hot;import java.util.Arrays;class ListNode{int val;ListNode next;ListNode(int val){this.val = val;}
}public class Solution23 {public static void main(String[] args) {ListNode[] lists = new ListNode[3];ListNode a1 = new ListNode(1);ListNode a2 = new ListNode(4);ListNode a3 = new ListNode(5);ListNode b1 = new ListNode(1);ListNode b2 = new ListNode(3);ListNode b3 = new ListNode(4);ListNode c1 = new ListNode(2);ListNode c2 = new ListNode(6);a1.next = a2;a2.next = a3;b1.next = b2;b2.next = b3;c1.next = c2;lists[0] = a1;lists[1] = b1;lists[2] = c1;Solution23 solution = new Solution23();int[] res = new int[8];ListNode head = solution.method(lists);for(int i = 0; i < 8; i++){res[i] = head.val;head = head.next;}System.out.println(Arrays.toString(res));}private ListNode method(ListNode[] lists){return merge(lists, 0, lists.length - 1);}private ListNode merge(ListNode[] lists, int l, int r){if(l > r){return null;}if(l == r){return lists[l];}int mid = (l+r) / 2;return recur(merge(lists, l, mid), merge(lists, mid+1, r));}private ListNode recur(ListNode l1, ListNode l2){if(l1 == null){return l2;}else if(l2 == null){return l1;}else if(l1.val < l2.val){l1.next = recur(l1.next, l2);return l1;}else{l2.next = recur(l1,l2.next);return l2;}}
}//时间复杂度为 O(nlogn)
//空间复杂度为 O(logn)

【LeetCode】【HOT】23. 合并K个升序链表(递归+分治)相关推荐

  1. [分治] leetcode 23 合并K个升序链表

    [分治] leetcode 23 合并K个升序链表 1.题目 题目链接 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例1: 输入:lists ...

  2. leetcode **23. 合并K个升序链表(2020.4.26)

    [题目]**23. 合并K个升序链表 21.合并两个有序链表 **23. 合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [1->4-& ...

  3. LeetCode 23合并K个升序链表24两两交换链表中的节点

    维护不易,点赞再看,感谢支持 合并K个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 1: 输入:lists = [[1 ...

  4. 82. Leetcode 23. 合并K个升序链表 (排序)

    给你一个链表数组,每个链表都已经按升序排列.请你将所有链表合并到一个升序链表中,返回合并后的链表.示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3 ...

  5. Leetcode 23 合并k个升序链表 (每日一题 20210722)

    给你一个链表数组,每个链表都已经按升序排列.请你将所有链表合并到一个升序链表中,返回合并后的链表.示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3 ...

  6. 力扣 23. 合并K个升序链表

    题目 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1, ...

  7. LeetCode题解-23 合并K个排序链表 Hard

    合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [1->4->5,1->3->4,2->6 ] 输出: 1->1->2 ...

  8. 小黑麦当劳坚韧leetcode之旅:23. 合并K个升序链表

    小黑答案 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): ...

  9. LeetCode 23 合并K个升序链表

    https://leetcode-cn.com/problems/merge-k-sorted-lists/ 解决方案 import java.util.Comparator; import java ...

最新文章

  1. cocos2dx中的用户数据的管理
  2. ArcGIS 网络分析[8.2] 资料2 使用IDatasetContainer2接口的CreateDataset方法创建网络数据集...
  3. DBCC命令2:状态查询
  4. LED显示驱动(三):显示驱动底层学习小结
  5. 进阶项目(4)蜂鸣器程序设计讲解
  6. Python实现词云图的3种方式(词频,一段文本,自定义样式)
  7. CADD课程学习(8)-- 化合物库虚拟筛选(Virtual Screening)
  8. FFmpeg基础:视频流转图片
  9. Codeforces Round #507 (Div. 2) B - Shashlik Cooking(模拟)
  10. 关于形而上学与形而下学之区别及关系
  11. 西门子200SMART(七)交叉引用
  12. 【线上活动】中秋诗词接龙!
  13. 销售订单退货原因对应的快码
  14. 盘点大厂的那些开源项目 - 滴滴出行
  15. 喵喵咪鼠标自动点击器使用说明
  16. 数据库常用的sql语句汇总
  17. Python程序员的自我修养
  18. 计算机网页设计论文加成品,计算机网页设计教学研究论文
  19. ps2摇杆android图形编程,ROC-RK3308-CC开发实例总结--PS2 Joystick摇杆模块
  20. CCV1.5 屏幕校正点删减调节

热门文章

  1. 留学计算机美国硕士,美国硕士留学计算机专业有哪些名校推荐下?
  2. php微信40037,服务号发送模板消息问题,错误码:40037
  3. 福大软工—第七次作业需求分析
  4. Python入门之软件开发目录规范
  5. block,inline和inlinke-block细节对比
  6. 网页撤销后ubuntu本地撤销
  7. Qt之QToolButton
  8. QTWebkit中的webkit/qt/api文档
  9. php 数组 键值 初始化,PHP 自定义键值数组
  10. (29)基于FPGA实现看门狗功能(FPGA不积跬步101)