作者:微信小助手
发布时间: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