题解 | #合并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