题目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 个一组翻转链表相关推荐

  1. 每隔k次反转一次 链表_leetcode 25 K个一组翻转链表(c++)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. leetcode 25. Reverse Nodes in k-Group | 25. K 个一组翻转链表(Java)

    题目 https://leetcode.com/problems/reverse-nodes-in-k-group/ 题解 乍一看以为很容易:每 k 个节点翻转,若剩余不足 k 个,则不变.没有什么技 ...

最新文章

  1. Wait--查看等待
  2. 《算法竞赛进阶指南》打卡-基本算法-AcWing 89. a^b:位运算、快速幂
  3. 使用pycaffe读取caffemodel参数(保存到txt文件)
  4. 5.0安装没有costom mysql_Zabbix5.0监控mysql配置
  5. 计算机网络-思维导图(2)物理层
  6. nginx 内置变量
  7. WPF:Graphics绘图--Shapes形状
  8. 一篇博客读懂设计模式之---工厂模式
  9. 架构应用之高可用、高复用
  10. activiti流程定义的部署
  11. JQuery时间轴timeline插件的学习-Lateral On-Scroll Sliding with jQuery+technotarek / timeliner
  12. 华为算法精英赛(题2:水仙花数判断)
  13. 微信小程序开发 uniapp【bug修复】点击事件 传值 数据结构错误 $orig
  14. 空间,是一首精美华丽的诗篇
  15. 吊炸天之Android 如何实现无网络传输文件
  16. 使用HTML+CSS制作一个简单的网页
  17. vue中this.$nextTick()使用解析
  18. fpga初始化错误_关于用FPGA对sja1000进行初始化的有关问题
  19. 管家婆软件五大实用小技巧,不会用太可惜了
  20. wordpress网址导航源码全局自适应手机端网站导航简约风主题模板

热门文章

  1. html新年拜年网页,新鸿儒HTML5花样拜年 20万人捧场闹新春
  2. The 2019 ACM-ICPC Shannxi J. And And And (点分治模板题)
  3. 区块链与数字货币的发展到底有什么意义
  4. ICT【计算机网络】学习笔记四
  5. pytorch中激活函数ReLU
  6. NOI.AC 713 魔术
  7. 经纬度坐标转墨卡托坐标
  8. 将ppt转换成pdf的三种方法分享
  9. 图神经网络的图网络学习(下)
  10. python字符串替换函数_Python正则替换字符串函数re.sub用法示例