题解 | #合并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
if not lists:
return None
if len(lists) == 1:
return lists[0]
else:
pre0 = lists[0]
pre1 = self.mergeKLists(lists[1:])
if(not pre0):
return pre1
if(not pre1):
return pre0
if(pre0.val > pre1.val):
phead = pre1
pre = pre0
else:
phead = pre0
pre = pre1
pre0 = phead
while pre0.next:
while pre and pre0.next.val > pre.val:
cur = pre.next
pre.next = pre0.next
pre0.next = pre
pre = cur
pre0 = pre0.next
if pre:
pre0.next = pre
return phead
写了好久、、、遇到好多BUG,感觉这种都很适合递归,要处理清楚思路,以及注意空的输入!!!
具体太晚了,懒得写了。眠
#日常刷题#