題目描述
在 O(n log n) 時間複雜度和常數級空間複雜度下,對鏈表進行排序。
算法思路
僅僅解題
class Solution:
def sortList(self, head: ListNode) -> ListNode:
self.res=[]
while head:
self.he(head.val)
head=head.next
N=ListNode(0)
T=N
for i in self.res:
T.next=ListNode(i)
T=T.next
T.next=None
return N.next
def he(self,t):
l,r=0,len(self.res)-1
while l<=r:
mid=(l+r)//2
if self.res[mid]<t:
l=mid+1
else:
r=mid-1
self.res.insert(l,t)
我寫啥二分插入,跟SB似的。
——————
class Solution:
def sortList(self, head: ListNode) -> ListNode:
res=[]
while head:
res.append(head.val)
head=head.next
res.sort()
N=ListNode(0)
T=N
for i in res:
T.next=ListNode(i)
T=T.next
T.next=None
return N.next
執行用時 :96 ms, 在所有 Python3 提交中擊敗了95.55%的用戶
內存消耗 :25.5 MB, 在所有 Python3 提交中擊敗了7.14%的用戶