首页 > 其他分享 >数据结构-->单链表OJ题--->讲解_03

数据结构-->单链表OJ题--->讲解_03

时间:2023-03-25 23:31:36浏览次数:41  
标签:03 OJ 10 -- oss 链表 process image

老铁们,现在开讲啦!!

下面是本期的OJ试题 :>

1.给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。

现列图式样所示 :>

上图只有一个中间结点,因此返回后输出为 :> [3, 4, 5]

下面是有两个结点的情况,要返回第二个结点 :

数据结构-->单链表OJ题--->讲解_03_链表OJ

上述第二种情况,输出的结果为 :> [4, 5, 6]

因此,我们要如何实现上述的情景,这是当下的重要环节,没有之一!!

这里,介绍一下,快慢指针的做法 :

数据结构-->单链表OJ题--->讲解_03_链表OJ_02



由上图所示的代码显示  :>


指针“slow”每次循环一次,只向前走一步


指针“fast”每次循环一次,确实向前走两步!!

下图所示,是即将终止运行过程的图示(意即最后一步)

数据结构-->单链表OJ题--->讲解_03_链表OJ_03

因此fast ->next 就为NULL 了,此时终止循环,返回 slow慢指针,就可以得到想要的结果了!!

显然结点个数还有偶数个的情况 :>

数据结构-->单链表OJ题--->讲解_03_快慢指针_04

此时上述的流程图,真实反映了,偶数结点个数的情况!!


fast为NULL时,就会终止循环,返回的仍旧是 slow慢指针,就可以得到我们想要的结果了!!

另外,强烈推荐,一定要亲手画上一遍流程图,你会发现一切的逻辑都是So easy !!


2.输入一个链表,输出该链表中的倒数第K个结点!!

上一道OJ题,讲述了,快慢指针的运用!!本题,仍然是用它,不过方式方法却有了变化!!

变得更加灵活了!!


现附上所需实现代码 :>

测试环节 :

数据结构-->单链表OJ题--->讲解_03_链表OJ_05

实现环节:

数据结构-->单链表OJ题--->讲解_03_链表OJ_06

调试环节:

数据结构-->单链表OJ题--->讲解_03_链表OJ_07


请看箭头所指,地址是相同的!!意味着代码逻辑正确,预期结果符合要求!!


本题OJ题,继续运用了快慢指针的思想,是不是很强大!!

好了,老铁们!!本期就到这里了!!感谢阅读!!希望能对你们有所帮助!!


标签:03,OJ,10,--,oss,链表,process,image
From: https://blog.51cto.com/u_15808800/6149680

相关文章

  • 力扣 216. 组合总和 III
    216.组合总和III找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列......
  • 关于Vim的基本使用方法
    基本文件操作:开始/结束输入:i/ESC保存文件::w文件名退出::q不保存文件并强制退出::q!打开文件:vimA.cpp5.新建程序(如果没有):vimA.cpp基本......
  • AES解密中IV值的默认选择方法
    说明在重构一个Node.js项目变为Go的过程中,我遇到了一个问题,无法正确复写其中一个使用的AES对称加密。原来的项目只需要两个参数就能成功解密,但我现在无法复现这个结......
  • 《直角坐标系与极坐标系的转换》 回复
    《直角坐标系与极坐标系的转换》      https://tieba.baidu.com/p/8324203930        质点 沿  y=x+b  作匀速直线运动,  可以......
  • 【LeetCode动态规划#04】不同的二叉搜索树(找规律,有点像智力题)
    不同的二叉搜索树力扣题目链接(opensnewwindow)给定一个整数n,求以1...n为节点组成的二叉搜索树有多少种?示例:思路题意分析先找一下关系当n=1时,如果元素就......
  • day25(2023.3.25)
    1.装饰器模式 运行结果: 2.FileUtils类① 运行结果:  3.FileUtils类② 运行结果:aaa: bbb: 4.IOUtils类 运行结果: IO章节的知识点就差不多......
  • P2 MySQL三层结构
    P2MySQL三层结构所谓安装MySQL数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。DBMS(databasemanagesystem)一个数据库可以创建多个......
  • 3.25学习总结
    如题,在Item布局的根节点添加上述属性,android:descendantFocusability="blocksDescendants" 即可,另外该属性有三个可供选择的值:beforeDescendants:viewgroup会优先其子类......
  • java学习日记20230325-接口
    接口基本介绍 接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。    如果一个类implements,需要将该接口的......
  • Spring快速入门及详解
    一、Spring简介1.介绍 Spring是一个开源框架,它的设计目标是用于解决企业级应用开发的复杂性和困难性。Spring框架采用了依赖注入(DI)和面向切面编程(AOP)两种基本的编程......