class Solution {public:// 翻转一个子链表,并且返回新的头与尾pair<ListNode*, ListNode*> myReverse(ListNode* head, ListNode* tail) {ListNode* prev = tail->next;ListNode* p = head;while (prev != tail) {ListNode* nex = p->next;p->next = prev;prev = p;p = nex;}return {tail, head};}ListNode* reverseKGroup(ListNode* head, int k) {ListNode* hair = new ListNode(0);hair->next = head;ListNode* pre = hair;while (head) {ListNode* tail = pre;// 查看剩余部分长度是否大于等于 kfor (int i = 0; i < k; ++i) {tail = tail->next;if (!tail) {return hair->next;}}ListNode* nex = tail->next;// 这里是 C++17 的写法,也可以写成// pair<ListNode*, ListNode*> result = myReverse(head, tail);// head = result.first;// tail = result.second;//tie()函数是用来赋值的吧tie(head, tail) = myReverse(head, tail);// 把子链表重新接回原链表pre->next = head;tail->next = nex;pre = tail;head = tail->next;}return hair->next;}
};作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group/solution/k-ge-yi-zu-fan-zhuan-lian-biao-by-leetcode-solutio/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2022-4-2 Leetcode 25.K个一组翻转相关推荐

  1. LeetCode 25. K 个一组翻转链表

    https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 难度:困难   给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. ...

  2. Leetcode 25.K个一组翻转链表

    难度:困难 频率:185 **题目:**给你一个链表,每K个节点一组进行翻转,清你返回翻转后的链表. K是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是K的整数倍,那么请将最后胜于的节点保 ...

  3. 28. Leetcode 25. K 个一组翻转链表 (链表-反转链表)

    给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一 ...

  4. Leetcode 25 K个一组翻转链表 (每日一题 20210719)

    给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一个只 ...

  5. LeetCode 25 K个一组翻转链表

    https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 解决方案 class Solution {public ListNode reve ...

  6. 25. K 个一组翻转链表

    25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持 ...

  7. Leetcode-递归/反转链表模板-25. K 个一组翻转链表

    题目25. K 个一组翻转链表: 题解: 模拟 以K个为一组,进行常规反转,重点是要保留反转前的头节点,以及第K+1个节点,将其反转之后连接起来 代码: /*** Definition for sin ...

  8. 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)

    题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...

  9. leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

    一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...

最新文章

  1. myeclipse2014如何创建user library
  2. 功能性农业投融资-农业大健康·周荣江:国情讲坛体制创新
  3. FreeMarker语法指南
  4. oracle 把逗号分隔符,将逗号分隔为Oracle中的列
  5. mysql主库从库binlog_MySQL主库主动推送binlog到从库
  6. mybatis集成 Invalid bound statement (not found)
  7. jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...
  8. 支持多达70余种嵌入式核心的嵌入式仿真软件SkyEye
  9. java连接zookeeper 找不到zoo.cfg_ZooInspector 连接不到 Zookeeper 的解决方法
  10. 项目启动会ppt_项目经理实战篇-项目启动会
  11. cookie——登录注册极简版
  12. java基础的正则表达式
  13. 【安装配置】Oracle数据库Linux系统下安装(图形界面)
  14. mysql可重复读理解
  15. 用matlab画旋转的玫瑰,基于Excel2010风向玫瑰图绘制研究.doc
  16. c语言-基本计算 pm2.5,pm2.5标准
  17. fastqc v0.11.8
  18. 云场景实践研究第62期:华栖云
  19. ITOM(IT运维管理软件)
  20. 省份城市联动 多选

热门文章

  1. Nginx内容过滤器-subs_filter
  2. Linux驱动学习——入门
  3. Matlab 基础应用01 - Python 基础应用 n阶幻方【MagicSquare】和构造
  4. H3C 小贝WA5320(云AP)瘦转胖版本操作
  5. 美团外卖/滴滴20201225面试
  6. 原创:sqlite数据库转换为mysql数据库
  7. SpringCloud Alibaba 微服务架构(十五)- 一文详解 Nacos 高可用特性
  8. 基于Python的Opencv 自动识别银行卡卡号系统
  9. 从华为云到米家APP,智能家居行业如何突破发展?智能家居未来发展方向(下)
  10. Unity游戏开发文档(3.1.1):弹窗效果