Leetcode-递归/反转链表模板-25. K 个一组翻转链表
题目25. K 个一组翻转链表:
题解:
模拟
以K个为一组,进行常规反转,重点是要保留反转前的头节点,以及第K+1个节点,将其反转之后连接起来
代码:
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k) {if ( head== NULL || head->next == NULL) {return head;}ListNode* tail = head;for (int i = 0; i < k; i ++ ) { //遍历k个节点if (tail == NULL) return head; //不足k个节点则不反转,直接返回tail = tail->next; //使尾结点与头结点相距k}//tail是第K+1个节点即下一次反转起点ListNode* newHead = reverseGroup(head, tail); //反转长度为k的链表head->next = reverseKGroup(tail, k); //递归将下一段反转链表接到当前段的尾部//这一段很久都没整明白,稿纸上比划了下才清楚了return newHead; //返回反转得到的这段}//反转head->tail-1的部分ListNode* reverseGroup(ListNode* head,ListNode* tail) {ListNode* cur = head; ListNode* pre = head->next;while(pre!= tail){ListNode* tmp = pre->next;pre->next = cur;cur = pre;pre = tmp;}return cur;}};
Leetcode-递归/反转链表模板-25. K 个一组翻转链表相关推荐
- 每隔k次反转一次 链表_leetcode 25 K个一组翻转链表(c++)
### 题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 说 ...
- 25. K 个一组翻转链表
25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持 ...
- 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)
题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...
- 28. Leetcode 25. K 个一组翻转链表 (链表-反转链表)
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一 ...
- LeetCode 25. K 个一组翻转链表
https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 难度:困难 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. ...
- Leetcode 25.K个一组翻转链表
难度:困难 频率:185 **题目:**给你一个链表,每K个节点一组进行翻转,清你返回翻转后的链表. K是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是K的整数倍,那么请将最后胜于的节点保 ...
- leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...
- Leetcode 25 K个一组翻转链表 (每日一题 20210719)
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序.进阶:你可以设计一个只 ...
- leetcode 25. Reverse Nodes in k-Group | 25. K 个一组翻转链表(Java)
题目 https://leetcode.com/problems/reverse-nodes-in-k-group/ 题解 乍一看以为很容易:每 k 个节点翻转,若剩余不足 k 个,则不变.没有什么技 ...
最新文章
- Wait--查看等待
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 89. a^b:位运算、快速幂
- 使用pycaffe读取caffemodel参数(保存到txt文件)
- 5.0安装没有costom mysql_Zabbix5.0监控mysql配置
- 计算机网络-思维导图(2)物理层
- nginx 内置变量
- WPF:Graphics绘图--Shapes形状
- 一篇博客读懂设计模式之---工厂模式
- 架构应用之高可用、高复用
- activiti流程定义的部署
- JQuery时间轴timeline插件的学习-Lateral On-Scroll Sliding with jQuery+technotarek / timeliner
- 华为算法精英赛(题2:水仙花数判断)
- 微信小程序开发 uniapp【bug修复】点击事件 传值 数据结构错误 $orig
- 空间,是一首精美华丽的诗篇
- 吊炸天之Android 如何实现无网络传输文件
- 使用HTML+CSS制作一个简单的网页
- vue中this.$nextTick()使用解析
- fpga初始化错误_关于用FPGA对sja1000进行初始化的有关问题
- 管家婆软件五大实用小技巧,不会用太可惜了
- wordpress网址导航源码全局自适应手机端网站导航简约风主题模板