剖解环形链表1

news2024/9/28 3:50:41

环形链表

在这里插入图片描述

思路:我们知道在操场上跑步,若一个人跑的快,另一个人跑得慢,那么就一定会有相遇的那一刻,两人站在同一个位置,所以我们可以分别定义快慢指针,若快指针和慢指针相逢,就说明该链表是环形链表
1.若链表为空或者链表只有一个节点,则不可能有环,即

if ( head == null || head.next==null){
return false;
}

2.若链表有多个节点,此时分别定义快慢指针,即

ListNode fast=head;
ListNode slow=head;

3.在快指针和快指针的next域不为空的情况下,
让快指针每次走两步,慢指针每次走一步,若两指针指向的节点地址相同,则说明成环,即

while(fast!=null && fast.next!=null){
fast=fast.next.next;
slow=slow.next;
if(fast==slow){
return true;
}
}

完整代码如下:

public boolean hasCycle(ListNode head) {
        if(head==null){
            return false;
        }
        ListNode fast=head;
        ListNode slow=head;
        while(fast!=null && fast.next!=null){
            fast=fast.next.next;
            slow=slow.next;
            if(fast==slow){
                return true;
            }
        }
        return false;
    }

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

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

相关文章

梦幻西游端游如何查看挂机进度,GameViewer远程随时手机畅玩梦幻西游

原来用手机就可以免费玩梦幻西游端游?还可以随时查看游戏进度!如果你喜欢玩梦幻西游端游,有总觉得出门在外不方面携带电脑,要想用手机实现随时随地查看梦幻西游的挂机进度,可以用网易GameViewer远程这款专为游戏玩家设…

望繁信科技携手甫瀚咨询共建流程挖掘产业生态

2023年,望繁信科技与甫瀚咨询达成战略合作并签署生态伙伴合作协议。双方将携手共同探索流程挖掘在各领域企业的应用场景,提供更全面及高效的流程挖掘解决方案,以助力企业在数字化转型浪潮中实现精益管理。 自2009年起,流程挖掘从…

深度学习:迁移学习

目录 一、迁移学习 1.什么是迁移学习 2.迁移学习的步骤 1、选择预训练的模型和适当的层 2、冻结预训练模型的参数 3、在新数据集上训练新增加的层 4、微调预训练模型的层 5、评估和测试 二、迁移学习实例 1.导入模型 2.冻结模型参数 3.修改参数 4.创建类&#xff…

windows 录音编码为flv格式时,pcm采样格式

这里使用的是0x3e,转换为二进制: 0 0 1 1 1 1 1 0 前四个字节为3,表示Linear Pcm, 后4个字节1 1 1 0 表示44100HZ采样, 16个bit,单声道。 故,windows 音频采样不支持48000HZ频率

基于Hive和Hadoop的电商消费分析系统

本项目是一个基于大数据技术的电商消费分析系统,旨在为用户提供全面的电商消费信息和深入的消费行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 S…

QT 获取视频帧Opencv获取清晰度

先展示结果&#xff1a; 1.获取摄像头的分辨率 mResSize.clear();mResSize camera_->supportedViewfinderResolutions();ui->comboBox_resulation->clear();int i0;foreach (QSize msize, mResSize) {qDebug()<<msize;ui->comboBox_resulation->addItem(…

9.27作业

顺序表 SeqList.h #ifndef SEQLIST_H #define SEQLIST_H #include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h> using namespace std;//封装一个顺序表 template <typename T> class SeqList { private:T *ptr; …

如何高效精准地管理商标官文?

商标官文涵盖了商标从申请注册到后续维护的各个阶段所涉及的官方文件&#xff0c;如受理通知书、审查意见通知书、商标注册证等。这些官文不仅是商标权利的重要凭证&#xff0c;更是企业了解商标状态、应对各种情况的重要依据。有效的商标官文管理能够确保企业及时掌握商标动态…

Redis的数据类型和编码方式

目录 数据类型&#xff1a;编码方式String&#xff1a;hash&#xff1a;list&#xff1a;set&#xff1a;zset&#xff1a; 通过这个指令可以看到底层实现 数据类型&#xff1a; Redis底层实现上述数据结构的时候&#xff0c;会在源码层面&#xff0c;针对上述实现进行优化&am…

【Java】—— 多线程:随堂复习

目录 1. 几个概念 2. 如何创建多线程&#xff08;重点&#xff09; 3. Thread类的常用方法、线程的生命周期 4. 如何解决线程安全问题(重点、难点) 5. 同步机制相关的问题 6. 线程间的通信 1. 几个概念 程序(program)&#xff1a;为完成特定任务&#xff0c;用某种语言编…

NSSCTF [HUBUCTF 2022 新生赛]simple_RE(变种base64编码)

文件无壳 拖入IDA中 shiftF12查看可疑字符串 发现两串字符串 一看这两个等于号就猜测是base64编码 进入主函数看看 这段代码是一个简单的 C 语言程序&#xff0c;主要功能是接受用户输入的字符串作为“flag”&#xff0c;然后通过对输入的字符串进行一些处理和比较来验证是否输…

双十一购物节:五大必买爆款科技好物,让你省钱又省心

双十一购物节&#xff0c;作为中国最大的在线购物狂欢节&#xff0c;每年都吸引着无数消费者的眼球。在这个购物盛宴中&#xff0c;科技产品因其创新性、实用性和高性价比而成为消费者关注的焦点。随着科技的飞速发展&#xff0c;越来越多的智能设备走进了我们的生活&#xff0…

SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异

在现代互联网环境中&#xff0c;使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私&#xff0c;还是为了访问某些特定资源&#xff0c;代理IP都扮演着重要的角色。今天&#xff0c;我们就来聊聊SOCKS5代理和HTTP代理&#xff0c;看看这两者到底哪个更快…

什么是去中心化金融(DeFi)?

什么是去中心化金融&#xff08;DeFi&#xff09;? 传统金融特点是&#xff1f; 有中心化机构提供服务 银行 、 保险公司 、政权公司 、 基金管理公司 特点 保管用户的资产&#xff1a; 可冻结用户的账户&#xff0c;操作用户的资产作为交易中介&#xff1a; 审查交易制定…

Redis篇(Java操作Redis)

目录 讲解一&#xff1a;简介 讲解二&#xff1a;Jedis Github 一、创建项目、 二、添加依赖 三、配置文件 四、Java连接Redis 五、通过Redis连接池获取连接对象并操作服务器 六、封装JedisUtil对外提供连接对象获取方法 七、Java操作Redis五种数据类型 1. 连接与释放…

IoT网关的主要功能有哪些?天拓四方

在数字化浪潮席卷全球的今天&#xff0c;物联网&#xff08;IoT&#xff09;技术凭借其独特的优势&#xff0c;逐渐在各个领域展现出强大的生命力。而IoT网关&#xff0c;作为连接物理世界与数字世界的桥梁&#xff0c;其在物联网体系中的作用愈发凸显。 一、数据聚合与预处理…

qt 高并发编程及同步

高并发编程是指在同一时间处理多个任务的能力&#xff0c;通常用于提升应用程序的性能和响应速度。Qt提供了一系列强大的工具和类来实现高并发编程&#xff0c;包括多线程、异步编程和任务调度。 一、继承QThread #include <QThread>class Worker : public QThread {voi…

基于springcloud的药品销售系统

文未可获取一份本项目的java源码和数据库参考。 一、选题背景与意义 1. 选题背景 在日常医药管理中&#xff0c;面对众多的药品和众多不同需求的顾客&#xff0c;每天都会产生大量的数据信息。以传统的手工方式来处理这些信息&#xff0c;操作比较繁琐&#xff0c;且效率低下…

重头开始嵌入式第四十四天(硬件 ARM裸机开发)

目录 裸机开发 一、开发背景 二、开发特点 三、开发流程 四、应用领域 使用的软件硬件 软件&#xff1a;keil 硬件&#xff1a;三星S3C2440A JTAG 开发原理 ​编辑 开发步骤 ​编辑 点亮小灯 按键控制亮灭 裸机开发 ARM 裸机开发是指在没有操作系统的情况…

CUDAExample: 波纹示例

需要用到的已经封装好的辅助类&#xff1a; CPUAnimBitmap 定义个grid 和 block 的维度都是二维的 #include"cpu_anim.h" #include "cuda_runtime.h" #include <device_launch_parameters.h>#define DIM 512 static void CheckCudaErrorAux(const …