当前位置: 首页> 健康> 科研 > 东莞网站制作找哪里_有哪些免费的ppt模板下载网站_苏州seo培训_电商网站设计论文

东莞网站制作找哪里_有哪些免费的ppt模板下载网站_苏州seo培训_电商网站设计论文

时间:2025/9/13 13:31:12来源:https://blog.csdn.net/Catherinemin/article/details/145065695 浏览次数:0次
东莞网站制作找哪里_有哪些免费的ppt模板下载网站_苏州seo培训_电商网站设计论文

LCR 026.重排链表

给定一个单链表 L 的头节点 head ,单链表 L 表示为:

L0 → L1 → … → Ln-1 → Ln
请将其重新排列后变为:

L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …

不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例 1:

img

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

示例 2:

img

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

提示:

  • 链表的长度范围为 [1, 5 * 104]
  • 1 <= node.val <= 1000

法1:

分析:

在这里插入图片描述

var reorderList = function(head) {let dummy = new ListNode(0);dummy.next = head;        let fast = dummy;let slow = dummy;// 快慢指针,找到链表的中点while (fast !== null && fast.next !== null) {slow = slow.next;fast = fast.next;if (fast.next !== null) {fast = fast.next;}            }// 分割链表并反转后半部分let temp = slow.next;slow.next = null;link(head, reverseList(temp), dummy);
};// 合并两个链表
function link(node1, node2, head) {let prev = head;while (node1 !== null && node2 !== null) {let temp = node1.next;// 交替连接节点prev.next = node1;node1.next = node2;prev = node2;node1 = temp;node2 = node2.next;}// 如果链表1还有剩余,直接连接if (node1 !== null) {prev.next = node1;}
}// 反转链表
function reverseList(first) {let prev = null;let cur = first;let head = null;// 反转链表while (cur !== null) {let next = cur.next;cur.next = prev;if (next === null) {head = cur;}prev = cur;cur = next;}return head;
}// 定义链表节点
function ListNode(val) {this.val = val;this.next = null;
}
关键字:东莞网站制作找哪里_有哪些免费的ppt模板下载网站_苏州seo培训_电商网站设计论文

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: