剑指 Offer II 077. 链表排序
给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
示例 1:

| 1 | 输入:head = [4,2,1,3] | 
示例 2:

| 1 | 输入:head = [-1,5,3,4,0] | 
示例 3:
| 1 | 输入:head = [] | 
提示:
- 链表中节点的数目在范围 [0, 5 * 104]内
- -105 <= Node.val <= 105
解法1:借助数组
流程:
- 遍历链表将链表中的元素存入数组
- 对数组排序
- 再次遍历链表和数组,将排好序的元素存入链表中
代码实现:
| 1 | public ListNode sortList(ListNode head) { | 
解法2:归并排序
流程:
- 通过快慢指针找到当前链表的中心节点,在此处将链表断开
- 递归对两边链表进行排序
- 归并合并两个有序链表(合并两个有序链表)
| 1 | public ListNode sortList(ListNode head) { | 

