码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java练习题第二期】:用Java实现链表内指定区域的反转


    hi~本期是Java题目分享
    小猪做了一个对于新手挺有挑战性的题目,题目难度中等,也很有意思,但也想了我好一会儿>︿<
    索性就分享一下,希望对你们有帮助

    在这里插入图片描述

    文章目录

    • 前言
    • 题目:链表内指定区域反转
    • 图形解析
      • 第一步:
      • 第二步:实现过程
        • 第一次反转(动图):
        • 第二次反转(动图):
    • 代码:
    • 文字解析

    前言

    本题是我本人自己的思考后所做,如果哪里有错误,请求大佬指出来(^-^)(^-^)!
    在这里插入图片描述

    题目:链表内指定区域反转

    描述:
    将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)。
    例如:
    给出的链表为 1\to 2 \to 3 \to 4 \to 5 \to NULL1→2→3→4→5→NULL, m=2,n=4m=2,n=4,
    返回 1\to 4\to 3\to 2\to 5\to NULL1→4→3→2→5→NULL.

    数据范围: 链表长度 0 < size \le 10000<size≤1000,0 < m \le n \le size0<m≤n≤size,链表中每个节点的值满足 |val| \le 1000∣val∣≤1000
    要求:时间复杂度 O(n)O(n) ,空间复杂度 O(n)O(n)
    进阶:时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)

    图形解析

    第一步:

    为了让反转从头节点开始,可以在链表头加上一个虚拟节点当作第一个节点,head依旧是该虚拟节点的下一个节点,此时保证了第一个节点永远不会被反转。
    图:
    在这里插入图片描述

    第二步:实现过程

    第一次反转(动图):

    在这里插入图片描述

    第二次反转(动图):

    在这里插入图片描述有几次反转取决于n-m的值。

    代码:

    在这里插入图片描述

    文字解析

    (1)需要一个虚拟头节点
    (2)使prev永远在m-1的位置不变
    (3)cur在prev的下一个,还需要知道cur的下一个,也就是curNext
    (4)反转主要目的是使得m位置的和m+1位置的互换,进行n-m次

    那本期博客就到此结束了哈!

    在这里插入图片描述

    如果上面有不懂的可以私我哈,小猪永远在线!!
    如果你觉得对你有帮助的或者写的可以的可以给小猪一个小小的三连鼓励一下小猪哦!谢谢啦!
    别忘了关注小猪哦!小猪带你一起玩遍Java和嵌入式
    那咱们下期再见啦!

    请添加图片描述

  • 相关阅读:
    电脑dll修复工具下载安装,专门解决(win系统)MSVCP100/110/120/140.dll丢失问题
    基本知识:block/sleep/hang/宕机/hook/stub/offload/overhead/watermark
    LeetCode50天刷题计划(Day 11—— 最接近的三数之和(8.40-10.00)
    中英文拼写检测纠正开源项目使用入门 word-checker 1.1.0
    决策树-分析与应用
    介绍各个PHP版本一些特性知识点
    【附源码】计算机毕业设计JAVA学生选拔系统
    倍福TwinCAT3 Ads相关错误详细列表
    xss 漏洞
    理解Laravel中的pipeline
  • 原文地址:https://blog.csdn.net/m0_62262008/article/details/125618569
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号