【链表】反转链表 II-力扣 92 题

news2024/11/24 5:55:41

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kuan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

给你单链表的头指针 head 和两个整数 leftright ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表

输入:head = [1,2,3,4,5], left = 2, right = 4
输出:[1,4,3,2,5]
public class E03Leetcode92 {
    private ListNode succeedNode;

    /**
     * 翻转指定区间的链表
     *
     * @param head
     * @param left
     * @param right
     * @return
     */
    public ListNode reverseBetween(ListNode head, int left, int right) {
        //开始反转的位置
        if (left == 1) {
            //2->3->4>5
            //反转后4->3->2->5
            return reverse(head, right);//反转前3个
        }
        //递归反转前n个节点
        //1-->链上前面的 4->3->2->5
        head.next = reverseBetween(head.next, left - 1, right - 1);
        return head;
    }

    /**
     * 反转前n个节点
     *
     * @param head
     * @param n
     * @return
     */
    private ListNode reverse(ListNode head, int n) {
        if (n == 1) {
            //记录后继节点,第一次记录的后继是3,因为2-->3
            succeedNode = head.next;
            return head;//返回节点2
        }
        final ListNode last = reverse(head.next, n - 1);
        //这里的的head是1,1节点的下一个节点的下一个节点
        head.next.next = head;//相当于翻转2 --> 1
        head.next = succeedNode;//head是1,把1和3连起来  1-->3
        return last;
    }

    public static void main(String[] args) {
        ListNode node = ListNode.of(1, 2, 3, 4, 5);
        System.out.println(new E03Leetcode92().reverseBetween(node, 2, 4).toString());
    }
}

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

【Linux】线程池 | 自旋锁 | 读写锁

文章目录 一、线程池1. 线程池模型和应用场景2. 单例模式实现线程池(懒汉模式) 二、其他常见的锁1. STL、智能指针和线程安全2. 其他常见的锁 三、读者写者问题1. 读者写者模型2. 读写锁 一、线程池 1. 线程池模型和应用场景 线程池是一种线程使用模式。线程过多会带来调度开…

Linux安装kafka-manager

相关链接https://github.com/yahoo/kafka-manager/releases kafka-manager-2.0.0.2下载地址 百度云链接&#xff1a;https://pan.baidu.com/s/1XinGcwpXU9YBF46qkrKS_A 提取码&#xff1a;tzvg 一、安装部署 1.把kafka-manager-2.0.0.2.zip拷贝到目录 /opt/app/elk 2.解压…

【Python】让Anaconda不再下载慢下载失败,Anaconda的下载源更换为国内源(保姆级图文)

目录 对于源的添加与修改1. 查看源3. 移除源4. 恢复默认源 检查添加源是否生效清理原来的索引配置总结 欢迎关注 『Python』 系列&#xff0c;持续更新中 欢迎关注 『Python』 系列&#xff0c;持续更新中 对于源的添加与修改 1. 查看源 conda config --show-sources## 2. 添…

天宇微纳芯片ic测试软件如何测试芯片上下电功能?

芯片的上电与下电功能测试是集成电路生产和研发过程中的关键环节&#xff0c;可以帮助企业确保产品的可靠性、整合性和兼容性&#xff0c;同时提高生产效率和产品质量。 因此在芯片的研发设计中&#xff0c;企业会对芯片的上下电有严格的要求&#xff0c;包括上下电的时序&…

飞腾主板显卡接eDP屏,显示花屏问题

故障现象: 开机过程中,在系统启动前无显示输出的阶段中。会有随机的白色竖条显示,位置不固定,且会抖动。 硬件环境: FT-1500A/16+显卡e8860; eDP屏京东方NV156FHM-N42; eDP屏数据(DP0+/-、DP1+/-、AUX)接口e8860直出; eDP屏背光接口控制BL_EN、BL_PWM由主板CPLD…

主要的经典模拟电路图 你都完懂了吗?

经典模拟电路图是电子学中非常重要的概念之一&#xff0c;在各种电子设备中&#xff0c;我们都可以看到这些电路图的身影。 一、差分放大电路&#xff0c;具有电路对称性的特点&#xff0c;此特点可以起到稳定工作点的作用&#xff0c;被广泛用干直接耦合电路和测量电路的输入级…

SSM02

SSM02 此时我们已经做好了登录模块接下来可以做一下学生管理系统的增删改查操作 首先&#xff0c;我们应当有一个登录成功后的主界面 在webapp下新建 1.main.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…

各种电机驱动原理

步进电机 步进电机参考资料 野火官方文档 步进电机驱动原理 上面参考文档中有的内容就不写了&#xff0c;写一下我自己的总结吧。 说明&#xff1a; 电机驱动器输入信号有电机转动方向信号DIR&#xff0c;电机转速信号PWM&#xff0c;电机使能信号EN&#xff1b;电机驱动器…

JVM调优工具

JVM调优工具 Jmap 查看类信息 此命令可以查看内存信息&#xff0c;实例个数以及占用内存大小。 num&#xff1a;序号instances&#xff1a;实例数量bytes&#xff1a;占用空间大小class name&#xff1a;类名称&#xff0c;[C is a char[]&#xff0c;[S is a short[]&#…

72.Linux系统下printf函数的输出问题

目录 printf函数输出问题 为啥要放到缓冲区呢&#xff1f; \n 强制刷新缓冲区 fflush 强制刷新缓冲区 printf函数输出问题 在 Linux 下&#xff0c;printf 函数通常会先将输出放入缓冲区而不是立即将其发送到终端或文件。这是为了提高性能&#xff0c;因为逐个字符或逐个…

JS 原型的原理

接下来&#xff0c;我们要说一个很重要的东西&#xff0c;就是原型&#xff0c;也就是 prototype。 原型这个东西在 js 里面是非常有用的一个东西&#xff0c;也非常的重要。 对于前端来说&#xff0c;原型肯定不会陌生。 但是有几个问题&#xff1a;这玩意到底是干啥的&…

【论文笔记】图神经网络采样相关工作整理9.19

【论文笔记】图神经网络采样相关工作整理9.19 GraphSAGE NIPS2017 论文&#xff1a;Inductive Representation Learning on Large Graphs 目前引用数&#xff1a;11628 本文提出了一种称为GraphSAGE的新的图嵌入方法&#xff0c;该方法可以在大型图上进行高效的无监督和有监…

STM32F103RCT6学习笔记1:GPIO认识—点灯

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发&#xff0c;有关基础知识的部分不会多唠&#xff0c;直接实践与运用&#xff01;文章贴出代码测试工程与测试效果图&#xff1a; 目录 STM32F103RCT6参数解读&#xff1a; GPIO的基础认识与分类&#xff1a; 串口相…

新老用户看过来~最实用的 Milvus 迁移手册来啦!

毫无疑问&#xff0c;Milvus 已经成为全球诸多用户构建生产环境时必不可少的向量数据库。 近期&#xff0c;Milvus 发布了全新升级的 Milvus 2.3 版本&#xff0c;内核引擎加速的同时也加入了诸如支持 GPU 这样实用且强大的特性。可以说&#xff0c;以 Milvus 2.3 为代表的 Mil…

如何第一时间把DLL插件注入到目标进程

在windows下&#xff0c;把DLL插件注入到一个进程的方法有很多&#xff0c;比较常用的比如用远程线程(CreateRemoteThread)注入&#xff0c;或者用windows的API&#xff1a;SetWindowsHookEx来注入&#xff0c;如下图&#xff0c;可以用RemoteDll这个注入工具进行注入操作&…

【双分支混合CNN-transforme:Pansharpening】

DBCT-Net:A dual branch hybrid CNN-transformer network for remote sensing image fusion (DBCT-Net&#xff1a;一种用于遥感图像融合的双分支混合CNN-transformer网络) 遥感图像融合是指将高空间分辨率的单波段全色图像与光谱信息丰富的多光谱图像进行融合&#xff0c;生成…

HTTPS 的加密流程的总结

什么是HTTPS 和HTTP一样也是应用层协议,但在HTTP协议的基础上引入了一个加密层(SSL/TLS). HTTP协议内容都是按照文本的方式明文传输的这导致在传输过程第三方者能够轻易获取传输的内容&#xff0c;而HTTPS在HTTP协议基础上引入一个加密以防止传输内容泄露或被篡改。 因此HTTPS…

项目经理不容错过的一个认证——《研发效能(DevOps)工程师国家职业技术认证》

一、引言 在当今的商业环境中&#xff0c;软件研发已成为企业保持竞争力的关键因素之一。项目经理在软件研发中扮演着重要角色&#xff0c;而随着企业对于研发效率的追求&#xff0c;考取《研发效能(DevOps)工程师国家职业技术认证》对于项目经理的职业发展具有重要意义。本文…

许战海战略文库|无增长则消亡:大型制造集团增长困境

竞争环境不是匀速变化&#xff0c;而是加速变化。企业的衰退与进化、兴衰更迭在不断发生&#xff0c;这成为一种不可避免的现实。在过去的100年里,全球经济周期的时间长度明显缩短,周期内的波动也更为剧烈。联合国教科文组织的研究表明&#xff0c;18世纪知识更新的周期约为80到…

什么国产工作流引擎好?

要想提升办公协作效率&#xff0c;获得高效发展&#xff0c;可以借助低代码技术平台的力量。它的轻量级、灵活、易维护、好操作等优势特点都是现代化办公环境里的得力助手&#xff0c;也可以帮助大家打破信息孤岛&#xff0c;连接内部数据资源&#xff0c;为企业未来发展提供强…