【LeetCode】数据结构刷题(2)[查找链表的中间节点]

news2024/11/24 1:24:42

【LeetCode】数据结构刷题(2)

  • 1.题目来源
  • 2.题目描述
  • 3.解题思路
  • 4.代码展示
  • 5.类似题目练习

所属专栏:玩转数据结构题型
博主首页:初阳785
代码托管:chuyang785
感谢大家的支持,您的点赞和关注是对我最大的支持!!!
博主也会更加的努力,创作出更优质的博文!!
关注我,关注我,关注我,重要的事情说三遍!!!!!!!!

1.题目来源

查找链表的中间节点

2.题目描述

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点

在这里插入图片描述

3.解题思路

这里我们引入一个重要的知识点快慢双指针
这里要求我们找到中间节点,我们不妨创建两个变量,一个fast,一个low,low走一步的时候fast走两步。这样的话只要fast走完了low就找到了中间节点。
但是我们节点的个数有两种:
第一种:有奇数个节点。
第二种:有偶数个节点。
所以我们fast结束的标志也有两种。
第一种是:fast->next=NULL。
第二种是:fast=NULL。

至于为什么这样可以找到中间节点其实也很好理解,我们的low走一步,fast走两步,也就是说我们fast走到步数是low的两倍,所以只要fast走完了,我们的low就刚好走了fast一半的路程。

我们花个图来理解以下:
在这里插入图片描述
在这里插入图片描述
第一种结束标志:
在这里插入图片描述
第二种结束标志:
在这里插入图片描述

4.代码展示

struct ListNode* middleNode(struct ListNode* head)
{
    if(head==NULL)
        return NULL;
    struct ListNode *fast,*low;
    fast=low=head; 
    while(fast && fast->next)//一个奇数个一个偶数个的结束标志
    {
        low=low->next;
        fast=fast->next->next;            
    }   
    return low;
}

5.类似题目练习

删除中间节点
这个题目和上面的题目是差不多的,大家可以点进去练习练习。

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

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

相关文章

自动驾驶方案及相关对标

华为: 2021年4月18日,在华为智能汽车解决方案BU新品发布会上,华为智能汽车解决方案BU总裁王军表示,华为要持续加大对汽车行业的投入,今年在研发上的投资将达到10亿美元,未来每年保持30%左右增长&#xff0…

three.js的着色器(巨详细 初学者 大白话)

three.js就不过多介绍了 可以看另一篇文章 总结就是场景 相机 和 渲染器 学起来 也比较轻松 后来看到了着色器 给我整懵乐了 一会一个API 一会一个API 都没见过 然后就一点点去学习 真的是费了好大劲了 需要知道很多新东西 才能初步知道和使用着色器 当然如果只是简单的使…

docker-harbor私有仓库的部署与管理

目录 Harbor Harbor介绍 Harbor的特性 Harbor的构成 部署Harbor 搭建本地私有仓库 Docker容器的重启策略 部署Docker-compose服务 部署Harbor服务 关于Harbor.cfg配置文件中两类参数 启动Harbor 查看 Harbor 启动镜像 创建一个新项目 在其他客户端上传镜像 维护管…

如何创建 2023 年营销日历(内含免费模板和示例)

沟通、文案撰写、社媒营销、点击付费广告、事件营销和搜索引擎排名优化有什么共同点? 它们都属于营销部门的工作范畴,而且很可能是围绕着同一个日程表进行工作排期。 你的营销团队比你想象的要大,当你考虑跨职能项目和团队成员在你整体战略…

ImageJ 用户手册——第四部分(ImageJ用户界面)

ImageJ 用户手册——第四部分(ImageJ用户界面) ImageJ用户界面工具栏(Toolbar)状态栏进度条19. 工具19.1 区域选择工具19.1.1 矩形选择工具19.1.2 圆角矩形选择工具19.1.3 圆形选择工具19.1.4 椭圆选择工具19.1.5 笔刷选择工具19.…

内网渗透基础-域环境搭建

一、环境准备 1.1虚拟机安装 Mac环境: vmware fusion;parallels desktop。 windows环境: vmware;virtualbox; 有习惯用其他软件的也都一样的,下载安装可以找百度教程。 1.2虚拟机三种网络配置模式 桥接模式&am…

塔望3W消费战略全案丨阳澄湖牌大闸蟹:承诺就是价值,打响官方第一枪

阳澄湖牌 大闸蟹 客户:苏州市阳澄湖大闸蟹营销有限公司 品牌:阳澄湖/阳澄湖牌 服务:3W消费战略 品牌全案 项目背景 苏州市阳澄湖大闸蟹营销有限公司是由苏州市相城区阳澄湖大闸蟹集团公司、苏州市阳澄湖现代农业产业园特种水产养殖有限公…

Springboot整合elasticsearch

​ 前言 elasticsearch基本介绍,这篇文章介绍了elasticsearch安装和使用。下面根据网上查来的各种资料,总结如何在springboot中使用elasticsearch。 文章中用es代替elasticsearch。 依赖 springboot版本是2.0,es版本用的是7.6.2。不同的…

专业做护眼灯的有哪些品牌?盘点专业护眼灯品牌排行

护眼灯是家庭照明必备的工具,专业做护眼灯的却不多,许多家长找不到合适的护眼灯,我就根据标准GB/T 9473-2017《读写作业台灯性能要求》,筛选出五款合适国人使用的护眼灯。 TOP1、南卡护眼台灯Pro 光源舒适度:❤❤❤❤…

电子工程有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是电子工程领域的SCI期刊推荐: IEEE Transactions on Electron Devices: 该期刊是IEEE出版社的顶级期刊,涵盖电子学、固态电子学、电子器件、材料科学等多个领域。 IEEE Transactions on Industrial Electronics: 该期刊是I…

ChatGPT写21个程序,16个有漏洞:离取代程序员还远着呢!

一、ChatGPT 生成的代码有多安全? 近年来,大型语言模型推动人工智能领域取得了巨大的进步。其中,OpenAI 打造的 ChatGPT 甫一亮相,就凭借出色的性能震惊全球。ChatGPT 不仅能够处理普通文本,还能将自然语言翻译成代码…

Linux嵌入式uboot使用tftp网络启动加载zImage、设备树

文章目录 一、前言二、Linux U-boot 相关命令(1)help 命令(2)printenv 命令(3)setenv 函数(4)saveenv 函数 三、tftp启动linux内核步骤(1)进入u-boot模式&…

使用chatgpt探索SQL注入

今天尝试使用chatgpt尝试探讨咨询一下SQL注入的问题以及如何解决。 首先问的是“作为一个安全工作人员,写一篇关于Java SQL注入以及如何预防的文章,包含所有使用SQL可能存在注入的情况” 结果,结果就是没有等到结果,直接出错了。…

数百家数科公司齐聚用友BIP技术大会,共享企业数智化领先实践

4月19日~4月21日,由用友公司主办的“2023用友BIP技术大会“在用友产业园(北京)盛大召开,用友介绍了更懂企业业务的用友BIP-iuap平台,并发布了全面数智化能力体系,助力企业升级数智化底座&#x…

15、Context

目录 一、常规gorutine控制二、context控制groutine1 - 使用context控制单个gorutine2 - context创建3 - context函数4 - Context接口5 - 使用context控制多个gorutine停止 一、常规gorutine控制 控制并发的两种方式: 使用WaitGroup:多个Goroutine执行同…

SQL经典50题总结

SQL经典50题总结 SQL经典50题总结1.数据准备50题1.查询"01" 课程比 "02" 课程成绩高的学生的信息及课程分数2.查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩3.查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩4.查询姓“…

推荐一个开源的区块链开发者工具网站

开源区块链开发者工具箱 https://ChainTool.tech 今天可以正式上线了。ChainTool 使用完全开源的方式编写一些开发者日常经常使用的工具。 关于 ChainToolDAO 大约在两个月前, ChainToolDAO 成立了,成立 ChainToolDAO 的来由是这样的:我是一…

Python模块练习题-测试你的Python技能。

练习题: 1.logging模块有几个日志级别?2.请配置logging模块,使其在屏幕和文件里同时打印以下格式的日志3.json、pickle、shelve三个区别是什么?4.json的作用是什么?5.subprocess执行命令方法有几种?6.为什么…

idea 2023版本创建maven管理的Scala项目教程

目录 1、创建项目1.1、创建项目名及简单配置1、2 刚开始创建好后的项目是这样的1、3 进行相关设置1)增加maven管理2)增加scala目录,并设置成resource目录 注意: 本项目写得教程是基于您得Java jdk、Scala jdk、maven这些都是安装配…

汽车充电桩检测设备TK4860C交流充电桩检定装置

TK4860C是一款在交流充电桩充电过程中实时检测充电电量的标准仪器,仪器以新能源车为负载,结合宽动态范围测量技术、电能ms级高速刷新等技术,TK4860C实现充电全过程的累积电能精准计量,相比于传统的预设检定点的稳态计量&#xff0…