题目链接
英文链接:https://leetcode.com/problems/sort-list/
中文链接:https://leetcode-cn.com/problems/sort-list/
题目详述
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。
示例 1:
1 | 输入: 4->2->1->3 |
示例 2:
1 | 输入: -1->5->3->4->0 |
题目详解
快速排序。
1 | public class LeetCode_00148 { |
归并排序。
- 当初始化
fast = head; slow = head
时,运用快慢指针方法最后两个指针的指向情况如下:- 当链表长度为奇数时,
fast
指向尾结点,slow
指向中心结点。 - 当链表长度为偶数时,
fast
指向null
,slow
指向下中位数结点。
- 当链表长度为奇数时,
- 当初始化
fast = head.next; slow = head
时,运用快慢指针方法最后两个指针的指向情况如下:- 当链表长度为奇数时,
fast
指向尾结点,slow
指向中心结点。 - 当链表长度为偶数时,
fast
指向尾结点,slow
指向上中位数结点。
- 当链表长度为奇数时,
1 | public class LeetCode_00148 { |
由于题目要求空间复杂度为 O(1)
,应该使用自底向上的归并排序。
1 | public class LeetCode_00148 { |