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

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6?tpId=295&tqId=724&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj

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

# 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
        
        n=len(lists)
        if n==0:
            return None
        head1=lists[0]
        
        for i in range(1,n):
            head2=lists[i]
            head1=self.merge_node(head1,head2)
        return head1
    def merge_node(self,head1,head2):
        head=ListNode(0)
        p=head
        if head1 == None:
            return head2
        if head2 == None:
            return head1
        while head1 and head2:
            if head1.val>head2.val:
                p.next=head2
                head2=head2.next
            else:
                p.next=head1
                head1=head1.next
            p=p.next
        if head1 != None:
            p.next=head1
        else:
            p.next=head2
        return head.next

全部评论

相关推荐

牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务