【力扣】148:排序鏈表

題目描述

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%的用戶
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章