作者:微信小助手
发布时间:2022-01-26T15:57:12
大家好,最近有位读者去虾皮面试啦,分享一下面试的真题~ 给你链表的头结点head ,请将其按升序排列并返回排序后的链表 。 实例1: 实例2: 这道题可以用双指针+归并排序算法解决,主要以下四个步骤 完整代码如下:前言 
 
  
1. 排序链表 
  
 输入:head = [4,2,1,3]
输出:[1,2,3,4] 
 输入:head = [-1,5,3,4,0]
输出:[-1,0,3,4,5]
  
class Solution {
    public ListNode sortList(ListNode head) {
        //如果链表为空,或者只有一个节点,直接返回即可,不用排序
        if (head == null || head.next == null)
            return head;
        
        //快慢指针移动,以寻找到中间节点
        ListNode slow = head;
        ListNode fast = head;
        while(fast.n