👨💻 大唐coding:个人主页
🎁 个人专栏: 《力扣高频刷题宝典》《SQL刷题记录》
⛵ 既然选择远方,当不负青春,砥砺前行!
目录
引入
大家好,我是大唐,不知道大家在刷力扣的时候看见这道困难题是否头疼,我也是被难住了好久,今天给大家分享一个非常巧妙的方法解决这个问题,那么今天我们来看一道非常经典而且面试高频的题目------力扣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 #返回的即为排序好的链表数组
二、文章结语
如果你已经看到这里了并且感觉这篇文章对你学习链表有所帮助,
那么请不要吝啬你的发财的小手给博主狠狠地扣个
👍 点赞💫收藏
⭐️ 关注
!
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!