【题解】剑指 Offer II 026. 重排链表(双指针)(快慢指针)

题目链接

 力扣

题目描述

给定一个单链表 L 的头节点 head ,单链表 L 表示为:
 L0 → L1 → … → Ln-1 → Ln  请将其重新排列后变为:
L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …
不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例 1:

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

输入: head = [1,2,3,4,5] 输出: [1,5,2,4,3]  
提示:
链表的长度范围为 [1, 5 * 104] 1 <= node.val <= 1000 解题思路  如果想让空间复杂度为0,可以利用找出终点,后半段翻转链表,然后两链表合并的方法         找到中点mid应该找到终点的前一个节点,然后后半部分取mid->next,取完后记得要让mid->next==NULL,因为要将链表断开,否则后面的操作会出错
        翻转链表可以先让sl

【题解】剑指 Offer II 026. 重排链表(双指针)(快慢指针)最先出现在Python成神之路

版权声明:
作者:倾城
链接:https://www.techfm.club/p/13474.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>