单链表算法 - 链表的中间节点

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/middle-of-the-linked-list/description/

思路1:

 思路2:

代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {//快慢指针ListNode* fast = head;ListNode* slow = head;while(fast && fast->next){//慢指针每次走一步slow = slow->next;//快指针每次走两步fast = fast->next->next;}//此时slow指向的节点刚好就是中间节点return slow;
}

提交结果:

这里输出3,4,5是因为这是链表,返回的时候返回的是3这个节点的地址,3节点的next指针指向的是4节点,以此类推直到某个节点的next指针指向空的时候就不打印。 

快慢指针的原理:

修改循环条件:

当我们把while循环中的两条表达式交换一下顺序,此时代码会有问题。

原因:

 建议不要修改while循环的顺序,这么小的细节找起来太难了。

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

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

相关文章

【接口自动化_06课_Pytest+Excel+Allure完整框架集成】

一、logging在接口自动化里的应用 1、设置日志的配置,并收集日志文件 日志的设置需要在pytest.ini文件里设置。这个里面尽量不要有中文 2、debug日志的打印 pytest.ini文件的开关一定得是true才能在控制台打印日志 import allure import pytest from P06_PytestFr…

CUDA cuDNN和pytorch(GPU版)的完整安装教程

​ * 说明: 本教程使用wsl-ubuntu20.04, 其他发行版linux的命令可能有所区别. *实测机型: i5-13500HX | RTX 4060 Laptop 一、下载CUDA12.X版本 这里以下载CUDA12.2为例。 前往cuda-12.2下载页, 按照如图方式选择合适的选项: 按照官方给出的命令, 在b…

Trie树的应用

Trie树的应用 题目解题思路代码 题目 维护一个字符串集合,支持两种操作: I x 向集合中插入一个字符串 x x x;Q x 询问一个字符串在集合中出现了多少次。 共有 N N N 个操作,所有输入的字符串总长度不超过 1 0 5 10^5 105&am…

ArkTS学习笔记_封装复用之@builderParam装饰器

ArkTS学习笔记_封装复用之builderParam装饰器 作用: 在自定义组件中,该装饰器用于装饰函数成员变量,builderParam装饰的函数成员变量的值必须是经过builder装饰的方法。变量初始化后可以在自定义组件内调用。初始化: 可以使用自定…

移动应用性能关注分析哪些指标

移动应用常见性能指标 要对应用开展性能测试,首先需要了解需要重点关注哪些指标?指标的参考范围大致是多少?可采用哪些工具收集这些指标?如何收集?如果指标有异常,大致有哪些high level的优化思路。这篇博客…

说一下GET请求和POST请求的区别

面试官常常会问到的一个问题就是:GET请求和POST请求的区别。因为一个看似简单的问题就能考察出面试者对网络协议和通信的掌握程度以及对前后端开发基础知识是否了解、安全性意识是否足够强,以及综合分析与总结能力等。 所以答的好可以让面试官对你刮目相…

YoloV8改进策略:卷积篇|Kan行天下之GRAM,KAN遇见Gram多项式V2版本

GRAM(GRAM可能是一个新提出的模型或方法的缩写,这里我们根据上下文进行解释)受到诸如TorchKAN和ChebyKAN等Kolmogorov-Arnold网络(KAN)替代方案的启发。GRAM引入了一种简化的KAN模型,但同时利用了Gram多项式变换的简单性。它与其他替代方案的不同之处在于其独特的离散性特…

Vue3 使用emoji表情包 emoji-mart-vue-fast

文档&#xff1a;emoji-mart-vue-fast - npm (npmjs.com) 非常简单 代码直接照抄即可 1. 引入 pnpm install emoji-mart-vue-fast 2. 使用 <template><Picker:data"emojiIndex":emojiSize"18":showPreview"false":infiniteScroll&quo…

【07】分布式事务解决方案

1、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中&#xff0c;一个事务由一组SQL语句组成。事务应该具有ACID四个特性&#xff1a;原子性、一致性、隔离性、持久性。任何事务机制在实现时&#xff0c;都应该考虑事务…

J025_斗地主游戏案例开发(简版)

一、需求描述 完成斗地主游戏的案例开发。 业务&#xff1a;总共有54张牌&#xff1b; 点数&#xff1a;3、4、5、6、7、8、9、10、J、Q、K、A、2 花色&#xff1a;黑桃、红桃、方片、梅花 大小王&#xff1a;大王、小王 点数分别要组合4种花色&#xff0c;大小王各一张。…

[激光原理与应用-114]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 18 - 产品宣传、介绍、产品价值、帮助客户解决的问题

目录 一、第一印象 1.1 我是谁&#xff1f;产品是什么&#xff1f;产品在产业链中的位置 1.2 公司在产业链中的位置&#xff1f;公司简介&#xff1f; 二、IPM工作原理 2.1 IPM系统组成 2.2 基于激光熔池光学检测原理 2.3 基于信号特征的检测原理 三、IPM产品如何与客…

2-17,18,19 -- 关于指针

指针(pointer 声明指针 int *p;定义指针 int a 4; int *p &a; //指针p是指向变量a的地址的指针指针数组 int *arr[5];数组指针 int (*arr)[5];函数指针 int (*fun)(int,int) // 声明一个指向函数的指针,这个函数的返回值是int,有两个int的参数指针的指针 int **p;…

ArkTS学习笔记_封装复用之@Styles装饰器

ArkTS学习笔记_封装复用之Styles装饰器 背景&#xff1a; 在开发中&#xff0c;如果每个组件的样式都需要单独设置&#xff0c;就会出现大量代码在进行重复样式设置&#xff0c;虽然可以复制粘贴&#xff0c;但为了代码简洁性和后续方便维护&#xff0c;给出的思路是&#xff…

jmeter分布式(四)

一、gui jmeter的gui主要用来调试脚本 1、先gui创建脚本 先做一个脚本 演示&#xff1a;如何做混合场景的脚本&#xff1f; 用211的业务比例 ①启动数据库服务 数据库服务&#xff1a;包括mysql、redis mysql端口默认3306 netstat -lntp | grep 3306处于监听状态&#xf…

深入了解MySQL中的innodb_lock_wait_timeout

引言 在数据库管理中&#xff0c;确保数据的一致性和完整性是至关重要的。MySQL的InnoDB存储引擎通过行级锁定机制来实现这一点。然而&#xff0c;当多个事务同时操作数据库时&#xff0c;可能会出现锁等待的情况。了解并合理配置innodb_lock_wait_timeout参数&#xff0c;对于…

数据库第6次作业

内容 1、创建视图v_emp_dept_id_1&#xff0c;查询销售部门的员工姓名和家庭住址 2、创建视图v_emp_dept&#xff0c;查询销售部门员工姓名和家庭住址及部门名称。 3、创建视图v_dept_emp_count(dept_name,emp_count,avg_salay)&#xff0c;统计每个部门人数并计算平均工资。 …

Spring 使用log4j

porn.xml 引入依赖 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><dependency><groupId>org.apache.logging.log4j<…

解读网传《深圳IT圈⭕新解读八小时工作制》

网传深圳IT圈的新解读八小时工作制 工作时间安排&#xff1a; 10:00-12:0014:00-18:0019:00-21:00 初看&#xff1a;有惊喜 上午开始时间晚&#xff1a;相对于传统的9点开始&#xff0c;这种安排允许员工有更多的早晨时间&#xff0c;可以用来休息或处理个人事务。下午和晚上分…

typescript新规范及vue3常用的属性解析【2024】

文章目录 如在vue中 使用tyescript来规范定义类型解释一下 < >的意思 定义 了 personList &#xff1a;是个数组 Array 且要告诉里面每一项 结构长什么样 Array<PersonInter>definepropsvue3中的hooks组件父子组件 方法、数据、相互调用 如在vue中 使用tyescript来…

【LSTM和GRU极简,和最新的TT也就是状态】机器学习模型来学习状态

LSTM&#xff08;长短期记忆网络&#xff09;中的关键参数包括输入门、遗忘门、输出门、细胞状态和隐藏状态。以下是如何进行推理计算的示例&#xff1a; LSTM参数和公式 输入门&#xff08;i_t&#xff09;&#xff1a;决定输入的信息量。 遗忘门&#xff08;f_t&#xff0…