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