【力扣高频TOP100】利用数组特质巧解合并K个升序链表(一眼就懂)

👨‍💻 大唐coding个人主页

 🎁 个人专栏《力扣高频刷题宝典》《SQL刷题记录》

既然选择远方,当不负青春,砥砺前行!

目录

引入

一、题目描述

示例

解题思路

解题方法

代码code

二、文章结语


引入

大家好,我是大唐,不知道大家在刷力扣的时候看见这道困难题是否头疼,我也是被难住了好久,今天给大家分享一个非常巧妙的方法解决这个问题,那么今天我们来看一道非常经典而且面试高频的题目------力扣TOP100之合并 K 个升序链表

一、题目描述

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例

解题思路

把链表的数据存到数组,然后数组排序好之后,在导入到链表中

解题方法

先运用for循环把链表数组中的子数组提取出来,然后把子数组中的数据依次添加到一个新数组当中,然后对数组进行排序(sort),在for循环把排好的数据依次链接到新链表中

代码code

class Solution:
    def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
        nums = []  #新建一个数组nums,用来存放链表数组中的数据
        for i in lists:    #依次将子数组遍历出来
            while i:       #将子数组中的数据添加到nums当中
                nums.append(i.val)
                i = i.next #直至结束
        nums.sort()        #对添加的数据升序排序
        cur = head = ListNode(-1)  #新建头结点
        for i in range(len(nums)): 
            cur.next = ListNode(nums[i])  #头结点依次连接下一个数据
            cur = cur.next
        return head.next  #返回的即为排序好的链表数组

二、文章结语

 如果你已经看到这里了并且感觉这篇文章对你学习链表有所帮助,

那么请不要吝啬你的发财的小手给博主狠狠地扣个

👍 点赞💫收藏 ⭐️ 关注

拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值