题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param lists ListNode类一维数组 
# @return ListNode类
#
class Solution:
    def mergeKLists(self , lists: List[ListNode]) -> ListNode:
        # write code here

        def check_min_index(lists_: list[ListNode]):            # 返回链表列表中中的最小值的索引
            return sorted(list(enumerate(lists_)), key=lambda _x: _x[1].val)[0][0]
        
        tmphead = node = ListNode(-1)
        
        # 去除 lists 中的空节点
        newlists = []
        for i in range(len(lists)):
            if lists[i] is not None:
                newlists.append(lists[i])
        # 合并链表
        while newlists:
            min_index = check_min_index(newlists)
            node.next = newlists[min_index]
            node = node.next
            newlists[min_index] = newlists[min_index].next
            if newlists[min_index] is None:
                newlists.remove(newlists[min_index])
        
        return tmphead.next

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务