当前位置: 首页 > news >正文

安徽网站开发哪家好做代码和网站

安徽网站开发哪家好,做代码和网站,杭州seo推广服务,做网站的书籍leetcode 25 思路 整体思路 解题的核心在于确定每 k 个节点的组,然后对组内节点进行翻转操作,并将翻转后的组正确连接回原链表。为了方便处理,我们引入一个虚拟头节点 dummy ,它的 next 指向链表的真正头节点 head 。这样做的好…

leetcode 25

在这里插入图片描述

思路

整体思路

解题的核心在于确定每 k 个节点的组,然后对组内节点进行翻转操作,并将翻转后的组正确连接回原链表。为了方便处理,我们引入一个虚拟头节点 dummy ,它的 next 指向链表的真正头节点 head 。这样做的好处是,在处理头节点时可以避免特殊情况的判断,统一代码逻辑

快慢指针的运用

我们使用了快慢两个指针,slow 指针初始指向 dummy ,fast 指针初始指向 dummy.next (即链表的头节点)。fast 指针的作用是向前移动 k 个节点,判断当前组是否有足够的 k 个节点。如果 fast 指针在移动 k 步的过程中遇到了 null ,说明剩余节点不足 k 个,此时直接返回 dummy.next ,因为剩余部分不需要翻转。如果 fast 指针顺利移动了 k 步,说明当前组有足够的节点,可以进行翻转操作

链表翻转操作

当确定当前组有 k 个节点后,我们开始进行链表翻转。设 cur 指针指向当前组的第一个节点(即 slow.next ),pre 指针指向当前组的下一组的第一个节点(即 fast )。通过循环 k 次,不断调整指针指向来实现节点的翻转。每次循环中,先保存 cur 的下一个节点 node ,然后将 cur 的 next 指向 pre ,更新 pre 为 cur ,再将 cur 移动到 node 。循环结束后,当前组的节点顺序就完成了翻转

反转链表可以参考另一篇博客:leetcode206反转链表

重新连接链表

完成一组节点的翻转后,需要将翻转后的组重新连接到原链表中。此时,slow.next 应该指向翻转后的组的头节点(即 pre ),然后将 slow 移动到当前组的尾节点(即翻转前的第一个节点,也就是 temp ),以便下一次循环时处理下一组节点

时间复杂度:O(n) 空间复杂度:O(1)

实现

var reverseKGroup = function (head, k) {if (!head || k === 1) return head;let dummy = { val: 0, next: head }let slow = dummy, fast = dummy.next;while (fast) {for (let i = 0; i < k; i++) {if (fast) {fast = fast.next} else {// 剩余元素不足k个return dummy.next;}}let cur = slow.next, pre = fast;for (let i = 0; i < k; i++) {// 进行反转const node = cur.next;cur.next = pre;pre = cur;cur = node;}const temp = slow.next;slow.next = pre;slow = temp;}return dummy.next;
};
http://www.15wanjia.com/news/164697.html

相关文章:

  • 有哪些做策划的用的网站短视频平台开发
  • 热门网站排名广州网站建设(信科网络)
  • 企业网站建设模块家里面的服务器可以做网站吗
  • 网站首页做一点开有动画美好乡村建设网站
  • 门户网站建设建议新乡宣传片制作公司
  • 网站广东省备案系统北京公司网站建设报价
  • 扁平化手机网站wordpress搬家后500
  • 陕西省两学一做网站wordpress禁止访问模版页面
  • 手机app微信网站免费算命
  • 医疗网站建设行情wordpress仿魔客吧
  • 做网站是什么样的工作长沙网页网站制作
  • 厦门市住房和建设局网站网站的基本知识
  • 网站地址ip域名查询织梦一键更新网站
  • php 修改 wordpress衡水seo排名
  • 蚌埠做网站多少钱直播代运营公司
  • 专门做恐怖片的网站如何建立网上授课平台
  • 企业建站公司网站项目管理系统
  • 济南wordpress 建站wordpress密码hello
  • 运营推广的网站有哪些浙江杭州
  • 网站建设公司巨头佛山建设网站公司哪家好
  • 如何做自己网站云播软件外包公司如何接单
  • 自己怎样建网站网站a记录吗
  • 青少年编程培训教育东莞网站优化什么方法
  • 福建省建设信息网站香奈儿网站建设
  • 电子商务网站建设策划书 服装 有详细数据库设计wordpress外网无法访问
  • 千博企业网站管理系统完整版 2014赞赏分享wordpress代码
  • 广州学做网站网站开发的pc或移动端
  • 购物网站销售管理做搜狗网站排名
  • 把开发的网站让外网能访问要怎么做在线建站|网页制作|网站建设平台
  • 有什么网站可以做3d深圳石岩网站建设