【LeetCode: 25. K 个一组翻转链表 + 链表 + 递归】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 链表 + 递归
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 25. K 个一组翻转链表

⛲ 题目描述

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

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

示例 1:

在这里插入图片描述

输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]
示例 2:

在这里插入图片描述

输入:head = [1,2,3,4,5], k = 3
输出:[3,2,1,4,5]

提示:
链表中的节点数目为 n
1 <= k <= n <= 5000
0 <= Node.val <= 1000

进阶:你可以设计一个只用 O(1) 额外内存空间的算法解决此问题吗?

🌟 求解思路&实现代码&运行结果


⚡ 链表 + 递归

🥦 求解思路
  1. 如果该题目没有只用 O(1) 额外内存空间的算法解决此问题的限制条件,那么我们可以开辟一个额外的数组空间,模拟即可。
  2. 如果有这个条件限制,那么我们可以通过递归来求解,主要的思路就是,每次先找到k个一组的链表,如果不满足k个,直接返回当前的链表。如果满足k个,那么我们就来反转这组的链表。
  3. 需要注意的细节[连接操作]:当前head的next指向的是后续递归过程返回的节点。当前递归返回的是pre节点,不明白的同学可以画一画就明白啦。
  4. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode root = head;for (int i = 0; i < k; i++) {if (root == null)return head;root = root.next;}ListNode pre = null;ListNode cur = head;while (cur != root) {ListNode temp = cur.next;cur.next = pre;pre = cur;cur = temp;}head.next = reverseKGroup(root, k);return pre;}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/658131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纯静态微信小程序水果商城

首页代码 <view class"container"><!-- 轮播图 --><view class"swiper-container"><swiper class"screen-swiper" indicator-dots"true" circular"true" autoplay"true" interval"300…

大学生以C语言为开始怎样学好编程呢?

大学生以C语言为开始怎样学好编程呢&#xff1f; 在开始前我分享下我的经历&#xff0c;刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;两年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些C语言学习方法和资料&#xff0c;让我不断提升自己&#xff0c;…

普通人怎么做Temu跨境电商项目?这几点要了解

随着全球电商市场的蓬勃发展&#xff0c;越来越多的人开始关注跨境电商领域。Temu作为拼多多旗下的跨境电商平台&#xff0c;以其独特的商业模式和强大的供应链能力吸引了众多普通人的关注。那么&#xff0c;作为一个普通人&#xff0c;如何才能做好Temu跨境电商项目呢?接下来…

ChatGPT可与自定义GPTs一起使用,智能AI代理时代来啦!

1月31日凌晨&#xff0c;OpenAI在社交平台公布了一个超强新功能&#xff0c;可以在ChatGPT中输入“GPTs名字”的方法&#xff0c;调用多个自定义GPTs一起协同工作。 例如&#xff0c;我想开发一款社交APP&#xff0c;1&#xff09;可以先用专业分析GPTs做一下市场调研&#xf…

小猪o2o生活通系统更新到了v24.1版本了php文件开源了提供VUE了但是车牌识别功能你真得会用吗

一.车牌识别设置项 车牌识别设置项总开关&#xff1a;系统后台-社区管理-社区配置-车牌识别配置。 平台需要开启车牌识别功能&#xff0c;其次平台可以选择车牌识别功能是由平台配置还是小区自己配置有需要提供代码的可以Q我昵称注明&#xff1a;CSDN网友。如果是平台自己配置&…

部署PXE高效批量网络装机

部署PXE高效批量网络装机 因在Cisco3850核心交换机中已开启DHCP 服务&#xff0c;因此不需要在配置DHCP服务。如果您的网络环境中也已有DHCP服务&#xff0c;也不用再配置DHCP服务了&#xff0c;直接部署PXE相关服务即可。 找一台linux系统的服务器&#xff0c;这本次试验用的是…

溯源取证-iphone取证-高难度篇

摘要&#xff1a; 本次内容主要讲解iphone8取证&#xff0c;算是年前最后一篇了&#xff0c;大家将就着看哈 本次使用的工具&#xff1a; ileappGUI.exe github一款开源且免费的移动介质取证工具 Magnet Axiom Cyber 一款付费的移动介质取证工具 DB.Browser.for.SQLite-3.12…

定制CRM客户关系管理软件的八个步骤

CRM发展要求周到的准备步骤由于丰富的功能&#xff0c;需要加以实施。因此&#xff0c;让我们仔细看看如何设计一个CRM&#xff0c;以获得最大的成功。 步骤1.设立目标 任何过程开始规划。之前建立一个客户关系管理&#xff0c;这是至关重要的写下的业务目标和确定什么样的挑战…

UnityShader(十)实现标准光照模型中的漫反射光照

基本光照模型中漫反射计算公式&#xff1a; 从公式可以看出&#xff0c;要计算漫反射需要知道四个参数&#xff1a;入射光线的颜色和强度clight&#xff0c;材质的漫反射系数mdiffuse&#xff0c;表面的法线n和光源方向I。 为了防止点积的结果为负数&#xff0c;需要使用max操…

速卖通半托管优缺点是什么?速卖通半托管和全托管的区别是什么?速卖通半托管怎么发货?

1月5日&#xff0c;阿里速卖通AliExpress正式向全体卖家推出半托管模式&#xff0c;并且官方连续发放多重补贴&#xff0c;重金加码半托管模式&#xff0c;推广力度非常大。 关于速卖通半托管服务春节补贴政策 图源&#xff1a;阿里巴巴全球速卖通官方 由此可见&#xff0c;半…

一种手机短信验证码登录平台的解决方案

前提 爬取数据时&#xff0c;请求需要带上Cookie&#xff0c;这是很常见的一种防爬手段。更新Cookie&#xff0c;常用的方法就是Selenium模拟输入用户名和密码&#xff1b;偶尔会遇到图片验证码&#xff0c;现在打码平台很多且技术也很成熟&#xff0c;这个已经不成问题。所谓…

使用Postman做API自动化测试

Postman最基本的功能用来重放请求&#xff0c;并且配合良好的response格式化工具。 高级点的用法可以使用Postman生成各个语言的脚本&#xff0c;还可以抓包&#xff0c;认证&#xff0c;传输文件。 仅仅做到这些还不能够满足一个系统的开发&#xff0c;或者说过于琐碎&#…

java代码中调用自定义函数

定义函数 CREATE DEFINERrootlocalhost FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS float BEGINDECLARE SUM FLOAT DEFAULT 0;SET SUMnum1num2;RETURN SUM; END <select id"cunchu" resultType"java.util.Map">SELECT test_fun1(1,2) as r…

海外短剧系统国际短剧源码h5多语言版app挂载tiktok油管ins

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目 前言 一、海外短剧系统是什么&#xff1f; 二、海外短剧系统功能与运营方式介绍 1.系统功能 2.短剧APP运营方式 总结 前言 本文简单介绍海外短剧系统的功能&#xff…

Java项目:基于SSM框架实现的家纺用品销售管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm814基于SSM框架实现的家纺用品销售管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试…

langchain+xray:prompt控制漏洞扫描

写在前面 xray是长亭推出的一款漏洞扫描工具。 langchain是调用LLM大模型完成自动化任务的框架。 本篇文章是对langchain自定义工具的探索&#xff0c;通过编写一个xray调用的工具&#xff0c;联合ChatGPT对xray进行调用&#xff0c;实现对目标的漏洞扫描。 xray功能分析 …

3 款最好的电脑硬盘数据迁移软件

您将从本页了解 3 款最好的 SSD硬盘数据迁移软件&#xff0c;磁盘供应商提供的软件和可靠的第三方软件。仔细阅读本文并做出您的选择。 什么是数据迁移&#xff1f; 数据迁移是将数据移动到其他计算机或存储设备的过程。在日常工作活动中&#xff0c;常见的数据迁移有三种&…

应用宝 <危害支付安全>

游戏未收到任何通知被应用宝下架&#xff0c;问了客服 客服&#xff1a;应用危害支付安全&#xff0c; 我&#xff1a;什么是危害支付安全&#xff0c; 客服&#xff1a;存在非腾讯的支付方式 我&#xff1a;应用没有非腾讯的支付方式&#xff0c;都是用的米大师支付 过去很久。…

KAFKA节点故障的容错方案

KAFKA节点故障的容错方案 1. broker启动加载逻辑1.1 日志组成和分析1.2 snapshot文件1.3 broker启动流程1.4 LogManager的初始化和启动过程 2. controller高可用1.1 选主逻辑1.2 HA切换1.3 controller的职责 3. partition高可用3.1 ISR列表3.1 选举Leader 4. 疑问和思考4.1 如果…

安卓开发转鸿蒙开发到底有多简单?

前言 相信各位搞安卓的同学多多少少都了解过鸿蒙了&#xff0c;有些一知半解而有些已经开始学习起来。那这个鸿蒙到底好不好搞&#xff1f;要不要搞&#xff1f; 安卓反正目前工作感觉不好找&#xff0c;即便是上海这样的大城市也难搞&#xff0c;人员挺饱和的。最近临近年关…