2022-4-2 Leetcode 25.K个一组翻转
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个一组翻转相关推荐
- LeetCode 25. K 个一组翻转链表
https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 难度:困难 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. ...
- Leetcode 25.K个一组翻转链表
难度:困难 频率:185 **题目:**给你一个链表,每K个节点一组进行翻转,清你返回翻转后的链表. K是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是K的整数倍,那么请将最后胜于的节点保 ...
- 28. Leetcode 25. K 个一组翻转链表 (链表-反转链表)
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一 ...
- Leetcode 25 K个一组翻转链表 (每日一题 20210719)
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一个只 ...
- LeetCode 25 K个一组翻转链表
https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 解决方案 class Solution {public ListNode reve ...
- 25. K 个一组翻转链表
25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持 ...
- Leetcode-递归/反转链表模板-25. K 个一组翻转链表
题目25. K 个一组翻转链表: 题解: 模拟 以K个为一组,进行常规反转,重点是要保留反转前的头节点,以及第K+1个节点,将其反转之后连接起来 代码: /*** Definition for sin ...
- 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)
题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...
- leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...
最新文章
- myeclipse2014如何创建user library
- 功能性农业投融资-农业大健康·周荣江:国情讲坛体制创新
- FreeMarker语法指南
- oracle 把逗号分隔符,将逗号分隔为Oracle中的列
- mysql主库从库binlog_MySQL主库主动推送binlog到从库
- mybatis集成 Invalid bound statement (not found)
- jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...
- 支持多达70余种嵌入式核心的嵌入式仿真软件SkyEye
- java连接zookeeper 找不到zoo.cfg_ZooInspector 连接不到 Zookeeper 的解决方法
- 项目启动会ppt_项目经理实战篇-项目启动会
- cookie——登录注册极简版
- java基础的正则表达式
- 【安装配置】Oracle数据库Linux系统下安装(图形界面)
- mysql可重复读理解
- 用matlab画旋转的玫瑰,基于Excel2010风向玫瑰图绘制研究.doc
- c语言-基本计算 pm2.5,pm2.5标准
- fastqc v0.11.8
- 云场景实践研究第62期:华栖云
- ITOM(IT运维管理软件)
- 省份城市联动 多选
热门文章
- Nginx内容过滤器-subs_filter
- Linux驱动学习——入门
- Matlab 基础应用01 - Python 基础应用 n阶幻方【MagicSquare】和构造
- H3C 小贝WA5320(云AP)瘦转胖版本操作
- 美团外卖/滴滴20201225面试
- 原创:sqlite数据库转换为mysql数据库
- SpringCloud Alibaba 微服务架构(十五)- 一文详解 Nacos 高可用特性
- 基于Python的Opencv 自动识别银行卡卡号系统
- 从华为云到米家APP,智能家居行业如何突破发展?智能家居未来发展方向(下)
- Unity游戏开发文档(3.1.1):弹窗效果