• [leetcode sort]148. Sort List


    Sort a linked list in O(n log n) time using constant space complexity.

    以时间复杂度O(n log n)排序一个链表。

    归并排序,在链表中不需要多余的主存空间

    tricks:用快慢指针找到中间位置,划分链表

     1 class Solution(object):
     2     def sortList(self, head):
     3         if not head or not head.next:
     4             return head
     5         pre, slow, fast = None, head, head
     6         while fast and fast.next:
     7             pre, slow, fast = slow, slow.next, fast.next.next
     8         pre.next = None
     9         return self.merge(*(map(self.sortList,(head,slow))))
    10     def merge(self,h1,h2):
    11         dummy = tail = ListNode(None)
    12         while h1 and h2:
    13             if h1.val < h2.val:
    14                 tail.next,h1, tail = h1,h1.next,h1
    15             else:
    16                 tail.next,h2,tail = h2,h2.next,h2
    17             tail.next = h1 or h2
    18         return dummy.next
  • 相关阅读:
    JS 按钮下一步(onclick点击事件)
    socketserver模块
    进程
    僵尸进程和孤儿进程
    守护进程
    互斥锁
    进程间通信=>IPC机制
    生产者消费者模型
    线程
    守护线程
  • 原文地址:https://www.cnblogs.com/fcyworld/p/6512248.html
Copyright © 2020-2023  润新知