42

编程题 42 /69

将给定的单链表
重新排序为:
要求使用原地算法,不能只改变节点内部的值,需要对实际的节点进行交换。

数据范围:链表长度 ,链表中每个节点的值满足

要求:空间复杂度 并在链表上进行操作而不新建链表,时间复杂度
进阶:空间复杂度 , 时间复杂度

参考答案

先找到链表的中点,把后半部分逆序,然后使用两个指针同时向后移动,将后面的节点插入前面即可。