leetcode 876. 链表的中间结点(快慢指针法)

news/2025/3/19 2:52:30/文章来源:https://www.cnblogs.com/haimishasha/p/18232119

题目描述

https://leetcode.cn/problems/middle-of-the-linked-list/description/

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

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

示例 1:

示例 2:

思路分析

用两个指针 slow 与 fast 一起遍历链表。slow 一次走一步,fast 一次走两步。那么当 fast 到达链表的末尾时,slow 必然位于中间。

代码实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode middleNode(ListNode head) {if(head==null) return null;ListNode slow = head, fast = head;while(fast!=null && fast.next!=null){slow = slow.next;fast = fast.next.next;}return slow;}
}

 

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

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

相关文章

浅谈如何优化 Milvus 性能

浅谈如何优化 Milvus 性能发布于 2023-01-10 14:53:303.5K0举报文章被收录于专栏:Reinvent Data ScienceMilvus 是全球最快的向量数据库,在最新发布的 Milvus 2.2 benchmark[1] 中,Milvus 相比之前的版本,取得了 50% 以上的性能提升。值得一提的是,在 Master branch 的最新…

Kubernetes – Namespaces

Kubernetes 命名空间是一种让您能够组织资源的机制。它就像集群内的虚拟集群。命名空间将资源与其他命名空间的资源隔离开来。例如,您需要在一个命名空间中为部署/服务使用不同的名称,但您可以在两个不同的命名空间中为部署使用相同的名称。 初始命名空间kube-system: Maste…

opengauss双region流式容灾搭建

opengauss双region流式容灾搭建 云和恩墨-戚钰2023-05-30openGauss本文出处:https://www.modb.pro/db/626197 一、主备双集群部署 架构:主集群:一主一备;灾备集群:一主一备 1. 安装集群 1 主节点:...41 备节点:..***.***45 xml 文件参考:<?xml version="1.0&…

leetcode160 相交链表

题目描述 https://leetcode.cn/problems/intersection-of-two-linked-lists/description/给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交: …

联想ThinkServerRD440进入管理界面

1.开机按F1进入BIOS找到【Server Management】-选择【BMC network configuration】设置DHCP,F10保存2.将路由器下的网线连接到服务器的MGMT口3.重启进入BIOS查看获取的地址,在浏览器输入IP4.提示这个错误可以用Edge浏览器的IE模式打开,或者其他浏览器有IE/兼容模式就行默认账…

Kubernetes – 标签和选择器

一个名为Kubernetes的开源容器管理平台可自动执行容器的部署、扩展、降级和负载平衡(也称为容器编排工具)。它由 Google 使用 Golang 创建,因此拥有一个相当大的社区。Google 最终将其捐赠给了 CNCF(云原生计算基金会)。本质上,部署是 pod 上方的一层抽象。它类似于 pod …

OOP第4-6次作业总结

前言: 这三次作业中第四次作业是对前三次作业答题判题程序的迭代,而从第五次作业开始,则是新的家居强电电路模拟程序题目。就难度而言,第四次作业比第五、六次作业难,第五次作业是家居强电电路模拟程序的开头,所以自然简单,而且第六次作业还减少了两道题目,使得第六次作…

​ChatTTS:Win11本地安装和一键运行包!

ChatTTS 是一个专为交互式语音准备的AI语音合成项目,特点是自然,逼真,可把控声音细节,能说能笑能停顿。 音频播放器00:00 00:00 使用上 / 下箭头键来增高或降低音量。 具体内容,已经在另外的文章中介绍过。本文主要是关注两个点。如何在Windows上安装这个项目。分享一个已…

WPF 稳定的全屏化窗口方法

本文来告诉大家在 WPF 中,设置窗口全屏化的一个稳定的设置方法。在设置窗口全屏的时候,经常遇到的问题就是应用程序虽然设置最大化加无边框,但是此方式经常会有任务栏冒出来,或者说窗口没有贴屏幕的边。本文的方法是基于 Win32 的,由 lsj 提供的方法,当前已在 1000 多万台…

Kubernetes – 容器编排简介

在本文中,我们将研究 Kubernetes 中的容器编排。但首先,让我们探索容器兴起的趋势、容器编排的需求,以及它如何为 Kubernetes 占据主导地位和发展创造空间。 技术渗透到我们日常生活的方方面面,对软件、销售和交付基于软件的产品或仅在业务中使用软件的公司和组织产生了巨大…

Linux学习笔记(2)——ls指令

指令:ls -a: 列出所有文件 -l:以长格式显示指定目标信息 -F:在每个文件末尾加上字符说明该文件类型:@符号链接、|表示FIFOS、/表示目录、=表示套接字 -s:在每个文件前面打印出大小 -t:按时间进行文件排序 -A:列出除了“.”和“..”的文件 -R:将目录下所有子目录的文件列…

KeepassXC Keepass2android WebDav 同步数据库

1:方案介绍 KeepassXC 和 Keepass2android 都是用来存储用户密码数据的应用。KeepassXC 在 Win、Mac、Linux 都可以安装;Keepass2android 在 andorid 安这两个软件都支持 .kdbx 数据库,也就是说 KeepassXC 创建的数据库在 Keepass2android 中也能使用,但问题是数据库如何同…