2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案
148.排序链表
1.题目描述
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序
2.解题报告
针对nlogn的排序算法,主要有快速排序,归并排序和堆排序。其中,堆排序利用了数组的连续特性。所以这里不能采用。其次,在快速排序中,设计大量数字的交换且单链表因为只能单向遍历,使用partition不是很直观。
所以,本题采用归并排序链表版来实现。
具体思路如下:
1.使用快慢指针,找到链表的中点。
2.对链表的前半部分和后半部分分别排序。
3.将两部分合并。
代码
/**
* Defi
原创
2021-08-10 17:16:13 ·
183 阅读 ·
0 评论