给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。

如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

示例 :

给定这个链表:1->2->3->4->5
当 k = 2 时,应当返回: 2->1->4->3->5
当 k = 3 时,应当返回: 3->2->1->4->5

大佬递归操作的总结

使用迭代反转如下:

反转[a,b)区间的链表节点,实现如下:

ListNode* reverse(ListNode *a, ListNode *b) {ListNode *new_head = NULL;while(a != b) { //反转 a - b之间的链表节点ListNode *p = a -> next;a -> next = new_head;new_head = a;a = p;}return  new_head;
}

回到需要反转K个为一组的问题上:

  1. 确定反转区间
  2. 确定反转后的头节点
  3. 链接反转后的尾节点和 未 反转的头节点
ListNode* reverseKGroup(ListNode* head, int k) {if (head == NULL) return head;ListNode *a = head;ListNode *b = head;//1. 确定反转区间for (int i = 0;i < k; ++i) {if (b == NULL) return head;b = b -> next;}//2.获取反转后的头节点ListNode *new_head = reverse(a, b);//3. 连接反转后的尾节点 a 和 未反转的头节点 new_heada -> next = reverseKGroup(b, k);return new_head;
}

leetcode-25 K个一组反转链表相关推荐

  1. leetcode 25. K个一组反转链表

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

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

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

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

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

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

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

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

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

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

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

  7. [Leedcode][JAVA][第25题][K个一组反转链表][链表][递归]

    [问题描述][第25题][K个一组反转链表][困难] 时间复杂度:O(N^2) 空间复杂度:O(1) ```java 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数, ...

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

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

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

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

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

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

最新文章

  1. 基于 Dash Bio 的生物信息学数据可视化
  2. SVN服务器搭建--Subversio与TortoiseSVN的配置安装
  3. oracle你如何重置序列号,oracle sequence语句重置方介绍
  4. “两小学生研究喝茶抗癌获奖”,官方回应:经老师培训独立完成
  5. html 控制文字的标签,html里面有一个控制文字滚动的标签marquee,比较有用。
  6. bash:附近有语法错误_Bash备忘单:按键组合和特殊语法
  7. 宁波大学计算机应用技术考研,宁波大学2021年计算机考研拟录取数据分析
  8. [渝粤教育] 中国地质大学 经济学原理 复习题
  9. 公需科目2020快速学习_2021公需科目学习快捷方法
  10. MACH SYSTEMS—总线接口转换工具
  11. [转载] 【冬瓜哥手绘雄文】集群文件系统架构演变终极深度梳理图解
  12. 云锁linux宝塔安装,【最新版】宝塔面板下为Nginx自编译云锁Web防护模块教程
  13. next主题搭建相册(无需安装插件,代码即可实现)
  14. kb3020369不适用计算机,适用于Windows 7的Service Pack 2 Microsoft发布KB3020369便利汇总更新 | MOS86...
  15. 利用Python获取历史双色球开奖结果
  16. 全球AI专家分布:人工智能,你真的了解吗?
  17. 人人学5G-5G频谱方案与关键技术
  18. 京东监控下单助手代码编写
  19. 魔兽世界怀旧服最新服务器开发时间,魔兽世界怀旧服:牢记这几点,可以显著提高怀旧服升级速度...
  20. bzoj2095 [Poi2010]Bridges

热门文章

  1. 导航条——收缩式导航菜单
  2. 从头到尾彻底解析Hash表算法
  3. 淘淘经受了一次考验...
  4. 基于三维点云数据的主成分分析方法(PCA)的python实现
  5. android源代码 abi,Android内核源码Abi目录学习笔记
  6. python直接执行*.sql_Python Django 之 直接执行自定义SQL语句(一)
  7. 软件性能测试vu脚本录制,利用LR插件完成性能测试脚本
  8. android手机播放pc音乐播放器,最强手机音乐播放器?Foobar2K安卓版体验
  9. docker 安装oracle_阿里云使用Docker搭建Hadoop集群
  10. mysql需要备份的数据_Mysql根据需要备份数据