小黑答案

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:arr = []# 把所有结点导入到arr中for list_ in lists:while list_:arr.append(list_)list_ = list_.next# 对arr进行排序arr = sorted(arr,key = lambda x:x.val)# 辅助结点head = ListNode()link = head# 依次链接结点for node in arr:link.next = nodelink = link.nextreturn head.next

顺序合并

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:# 合并两个链表的函数def merge2Lists(list1,list2):head = ListNode()link = headwhile list1 and list2:if list1.val > list2.val:link.next = list2list2 = list2.nextelse:link.next = list1list1 = list1.nextlink = link.nextif list1:link.next = list1else:link.next = list2return head.nextmerge = Nonefor list_ in lists:merge = merge2Lists(merge,list_)return merge

分治法

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:# 合并两个链表def merge2Lists(list1,list2):head = ListNode()link = headwhile list1 and list2:if list1.val > list2.val:link.next = list2list2 = list2.nextelse:link.next = list1list1 = list1.nextlink = link.nextif list1:link.next = list1else:link.next = list2return head.nextdef merge(lists,l,e):if l == e:return lists[l]elif l > e:return Noneelse:m = (l + e) // 2return merge2Lists(merge(lists,l,m),merge(lists,m+1,e))return merge(lists,0,len(lists)-1)

小黑生活状态

干!!!一定要开心,内耗就输了!!!

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

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

    [LeetCode][HOT]23. 合并K个升序链表 文章目录 [LeetCode][HOT]23. 合并K个升序链表 package hot;import java.util.Arrays;cla ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 【LeetCode笔记】23.合并K个升序列表(Java、分治、链表)

    文章目录 题目描述 解法 & 代码 二刷 冲的第一道hard,好耶! 题目描述 这道题和前面的合并两个有序链表很有联系.直接调用了整个合并函数. 可以看成我们已经有了足够优秀的"两条 ...

最新文章

  1. 面试题:mysql 一棵 B+ 树能存多少条数据?
  2. 没人教的项目管理方法之(明白该干什么) 二、项目章程如何写(下)
  3. python 面向对象(三大特性)
  4. 线程池拒绝策略-RejectedExecutionHandler
  5. 良好的XHTML规则
  6. 【KDD20】主题模型在图模型中的应用专题
  7. HDU 2609 最小表示法
  8. 拓端tecdat|Python安装TensorFlow 2、tf.keras和深度学习模型的定义
  9. 基于MATLAB的PID控制器设计
  10. 电力线通信技术的发展
  11. 本地怎么传文件到服务器,本地传输文件到服务器
  12. 计算机 金融工程 专业选择,金融工程专业对计算机编程能力是个什么要求呢
  13. 解决翻译论文时出现的换行问题-网页翻译-谷歌插件-翻译助手
  14. 什么软件测试苹果手机循环电池,教你如何检测苹果手机电池的损耗
  15. PPT制作技巧汇总之动画设置与播放(office 2007)
  16. 【无标题】Java画板简易实现
  17. 数据库系统概念 引言(一)
  18. 求逆矩阵计算机方法,求逆矩阵的快速方法(用于编程).pdf
  19. JavaScript 音乐导航(缓动动画、会唱歌的导航)
  20. 修改exe文件的图标

热门文章

  1. 【linux安装下载安装JDK1.8】
  2. 南方都市报评论:我们为什么一定要学外语?
  3. 棍子英雄html代码,棍子英雄动作防御
  4. 《图解深度学习》学习笔记(二)
  5. WIFI6 TWT机制介绍
  6. 小米9 android版本,小米9如何升级到Android 10.0?
  7. 碧桂园化身产城运营服务商,潼湖科技小镇成为其智慧产城示范区
  8. Google发布GAE 1.8.1版
  9. 使用802.1x和NAP实现动态vlan的划分-by 联科教育
  10. 强化学习的两大话题之一,仍有极大探索空间