题解 | #合并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 listUpdate(self,node:ListNode,lists: List[ListNode]):
        lists.remove(node)
        if(node.next!=None):
            lists.append(node.next)

    def mergeKLists(self , lists: List[ListNode]) -> ListNode:
        # write code here    
        lists = [node for node in lists if node != None]
        k = len(lists)
        if(k == 0):
            return None
        if(k==1): 
            return lists[0]
        
        lists =sorted(lists,key= lambda x: x.val)
        start = lists[0]
        res = start
        self.listUpdate(start,lists)
        cur = min(lists,key= lambda x: x.val)
        while(cur!=None):
            res.next = ListNode(cur.val)
            res = res.next
            self.listUpdate(cur,lists)
            if(len(lists) == 0):
                break
            cur = min(lists,key= lambda x: x.val)
            
        return start

钻牛角尖算法,直接把lists更新然后找最小的接起来,脑残算法,感谢python

全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务