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

LeetCodehot100-25 K 个一组翻转链表

class Solution { public: ListNode* reverseKGroup(ListNode* head, int k) { if (head == nullptr || k == 1) return head; ListNode dummy(0); dummy.next = head; ListNode* prev = &dummy; // 指向待反转组的前一个节点 while (true) { // 检查剩余节点是否够k个 ListNode* tail = prev; for (int i = 0; i < k; i++) { tail = tail->next; if (tail == nullptr) return dummy.next; // 不足k个,直接返回 } // 反转当前组的k个节点 ListNode* curr = prev->next; ListNode* next = curr->next; ListNode* groupTail = curr; // 当前组的第一个节点会成为反转后的最后一个节点 for (int i = 1; i < k; i++) { ListNode* temp = next->next; next->next = curr; curr = next; next = temp; } // 连接反转后的组 prev->next = curr; groupTail->next = next; // 移动prev到下一组的前一个节点 prev = groupTail; } return dummy.next; } };

class Solution { public: ListNode* reverseKGroup(ListNode* head, int k) { // 检查是否有k个节点 ListNode* curr = head; int count = 0; while (curr != nullptr && count < k) { curr = curr->next; count++; } // 不足k个,直接返回原链表 if (count < k) return head; // 反转前k个节点 ListNode* prev = nullptr; ListNode* next = nullptr; curr = head; for (int i = 0; i < k; i++) { next = curr->next; curr->next = prev; prev = curr; curr = next; } // 递归反转剩余部分 head->next = reverseKGroup(curr, k); return prev; } };

http://www.jsqmd.com/news/557878/

相关文章:

  • 告别Selenium/Puppeteer:自己编译一个带“初始Cookie”功能的Chromium浏览器
  • LabVIEW实战:基于DBC文件的CAN报文解析与DLL驱动发送全流程解析
  • 合宙ESP32C3 + MPU6500六轴传感器:手把手教你用MPU9250库快速读取数据(附完整代码)
  • DownKyi:B站视频高效解决方案——如何三步搞定8K资源本地化管理
  • 正点原子RK3568 LVGL移值
  • C++动态内存/内存管理
  • 破解技术垄断,开源方案拯救[设备类型]
  • **光计算驱动下的编程新范式:用Python实现光子神经网络模拟**在传统电子计算逐渐逼近物理极限的今天,**光计算(Optica
  • OpenClaw多模型切换:GLM-4.7-Flash与其他模型协同工作
  • ROS机械臂避障实战:用MoveIt!和Rviz实现复杂环境下的轨迹规划(附完整配置流程)
  • Polars 2.0快速接入全链路拆解(含Benchmark实测:比Pandas快42.6×,比Dask低68%内存)
  • StarRocks实战:利用UNNEST函数高效解析JSON数组字段
  • STM32远程升级系统设计与实现
  • 告别Postman!用CURL玩转API测试的7个高阶技巧
  • 基于SpringBoot+Vue的新闻管理系统设计与实现+指导搭建视频
  • UniApp自定义导航栏避坑大全:从胶囊适配到主题切换,我踩过的坑你别再踩
  • 告别手动Debug!用Cursor的Playwright MCP插件,自动抓取并修复前端控制台错误
  • GHelper轻量级解决方案:华硕笔记本性能调校完全指南
  • Cadence OrCAD导出PDF标签丢失?3种打印机实测对比与解决方案
  • 深入Tiptap插件开发:从字体样式到行高的自定义实现
  • 手把手教你点亮480x480圆形屏:ST7701s双通道MIPI初始化代码详解与调试心得
  • 全自动内容创作:OpenClaw+Qwen3-32B从选题到发布
  • 嵌入式按键事件处理框架:高可靠消抖与复合操作状态机
  • 逆向进阶(四) CE自动汇编实战:从CT表到独立EXE修改器的完整流程
  • 基于Vue3+Django的图书智能推荐系统设计与实现+文档(协同过滤算法)
  • 怎么安装OpenClaw?2026年京东云萌新6分钟部署保姆级教程
  • 3步解锁游戏扩展能力:面向玩家的插件框架应用指南
  • 如何使用 Dockerfile 创建自定义镜像?
  • 3个维度突破股票数据获取难题:MOOTDX量化分析实战指南
  • 【紧急通知】Python 3.14 JIT默认profile已触发AWS Lambda冷启动恶化阈值!立即执行这4项低成本开关校准