当前位置: 首页> 科技> 互联网 > 昆明百度seo排名优化_如何上国外购物网站_sem是什么设备_竞价软件哪个好

昆明百度seo排名优化_如何上国外购物网站_sem是什么设备_竞价软件哪个好

时间:2025/7/11 8:00:03来源:https://blog.csdn.net/chenziang1/article/details/144717457 浏览次数:0次
昆明百度seo排名优化_如何上国外购物网站_sem是什么设备_竞价软件哪个好

148. 排序链表

已解答

中等

相关标签

相关企业

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表

# Definition for singly-linked list.

# class ListNode(object):

#     def __init__(self, val=0, next=None):

#         self.val = val

#         self.next = next

class Solution(object):

    def sortList(self, head):

        """

        :type head: Optional[ListNode]

        :rtype: Optional[ListNode]

        """

        # 排序至少是nlogn的,直接全部排序一个个连起来得了

        # if head==None:

        #     return None

        # arr=[]

        # while head:

        #     arr.append(head)

        #     head=head.next

       

        # arr.sort(key=lambda x:x.val)

        # prev = ListNode(-1)

        # for index ,node in enumerate(arr):

        #     prev.next = node

        #     prev = node

       

        # # print(arr)

        # arr[-1].next=None

        # return arr[0]

        # 这个面试的时候很难这么搞啊

        # 这个merge的时候是左闭合,右开

        return self.sortFunc(head,None)

    def merge(self,list1,list2):

        prev = ListNode(-1)

        temp ,temp1, temp2 = prev , list1,list2

        while temp1 and temp2:

            if temp1.val<=temp2.val:

                temp.next = temp1

                temp1=temp1.next

            else:

                temp.next = temp2

                temp2=temp2.next

            temp = temp.next

        if temp1:

            temp.next = temp1

        elif temp2:

            temp.next = temp2

        return prev.next

        # 如果两个都是空,return也是空

    def sortFunc(self,head,tail):

        # 利用快慢指针,得到mid,然后使用merge(左右两个递归的序列)

        if not head:

            return head

        if head == tail:

            return None

        if head.next==tail:

            head.next=None

            return head

        # 如果head是空,那就返回空

        fast , slow = head,head

        while fast!=tail:

            fast = fast.next

            slow = slow.next

            if fast!=tail:

                fast = fast.next

        return self.merge(self.sortFunc(head,slow),self.sortFunc(slow,tail))






 

如果实际遇到的话,我直接来个放到arr里面

但是面试的话,我们这里直接是来个归并排序

关键字:昆明百度seo排名优化_如何上国外购物网站_sem是什么设备_竞价软件哪个好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: