每日一题——LeetCode141.环形链表

个人主页:白日依山璟

专栏:Java|数据结构与算法|每日一题

文章目录

    • 1. 题目描述
      • 示例1:
      • 示例2:
      • 示例3:
      • 提示:
    • 2. 思路
    • 3. 代码

1. 题目描述

给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false

示例1:

img

输入:head = [3,2,0,-4], pos = 1

输出:true

解释:链表中有一个环,其尾部连接到第二个节点。

示例2:

img

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点

示例3:

img

输入:head = [1], pos = -1
输出:false
解释:链表中没有环。

提示:

  • 链表中节点的数目范围是 [0, 104]
  • -105 <= Node.val <= 105
  • pos-1 或者链表中的一个有效索引

题目链接

2. 思路

  1. 定义两个指针,一快一慢。慢指针每次移动一次,而快指针每次移动两步。
  2. 初始化时,位置都在head
  3. 循环遍历链表,移动快慢指针,如果在移动的过程中,快指针反过来追上慢指针,就说明该链表为环形链表。否则快指针到达链表尾部,该链表不为环形链表。

动画:
1703475479379

3. 代码

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public boolean hasCycle(ListNode head) {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;}
}

运行结果:

image-20231225105525012

世界上有三种k,梅花k,方片k,还有任何人不关注我我都会难过的ok

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

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

相关文章

Android O 获取APK文件权限 Demo案例

1. 通过 aapt 工具查看 APK权限 C:\Users\zh>adb pull /system/priv-app/Settings . /system/priv-app/Settings/: 3 files pulled. 10.8 MB/s (48840608 bytes in 4.325s)C:\Users\zh>aapt d permissions C:\Users\zh\Settings\Settings.apk package: com.android.sett…

linux make命令实现,Linux make命令主要参数详解

-C dir或者 --directoryDIR在读取makefile文件前&#xff0c;先切换到“dir”目录下&#xff0c;即把dir作为当前目录。如果存在多个-C选项&#xff0c;make的最终当前目录是第一个目录的相对路径&#xff0c;如“make –C /home/leowang –C document”&#xff0c;等价于“ma…

recyclerview item动画_这可能是你见过的迄今为止最简单的RecyclerView Item加载动画...

如何实现RecyclerView Item动画&#xff1f; 这个问题想必有很多人都会讲&#xff0c;我可以用ItemAnimator实现啊&#xff0c;这是RecyclerView官方定义的接口&#xff0c;专门扩展Item动画的&#xff0c;那我为什么要寻求另外一种方法实现呢&#xff1f;因为最近反思了一个问…

VBoxManage: error: Nonexistent host networking interface, name 'vboxnet0' (VERR_INTERNAL_ERROR)

错误&#xff1a; VBoxManage: error: Nonexistent host networking interface, name vboxnet0 (VERR_INTERNAL_ERROR) 原因&#xff1a; 原来配置的网卡发生了变更&#xff0c;找不到了&#xff0c;启动失败。 解决方法&#xff1a; 第一步&#xff0c;命令&#xff1a; V…

esp32 嵌入式linux,初体验乐鑫 ESP32 AT 指令-嵌入式系统-与非网

乐鑫 AT 固件初体验初步体验 AT 指令下 TCP 数传&#xff0c;为了验证 AT 命令解析器。前往乐鑫官网 下载最新版本 AT 固件和 AT 指令集手册。硬件准备本文使用乐鑫的 ESP-WROOM-32(ESP-WROOM-32 是 ESP32-WROOM-32 的曾用名)模块&#xff0c;4MB Flash&#xff0c;无 PSRAM。E…

主机ping不通Virtualbox里的虚拟机

在redhat上安装了VirtualBox&#xff0c;虚拟了三台Linux机器。 宿主机网卡更换过了。三台虚拟机无法启动了&#xff0c;搭建虚拟机的运维离职了。 VirtualBox的图形界面坏了&#xff0c;启动不了。只能用命令行&#xff0c;今天时间就花在命令行上了。 第一个问题是&#xf…

Git之原有基础开发新功能

场景描述 当一个项目已经上线&#xff0c;同时又在原有基础上新增功能模块&#xff0c;于是乎就要在原有代码的基础上进行开发&#xff0c;在新增模块功能的开发的过程中&#xff0c;项目发现了一个紧急Bug&#xff0c;需要修复。操作流程如下&#xff1a; -------------------…

os.popen read()报编码错误_数据科学家易犯的十大编码错误,你中招了吗?

选自 Medium作者&#xff1a;Norm Niemer机器之心编译参与&#xff1a;李诗萌、王淑婷数据科学家比软件工程师擅长统计&#xff0c;又比统计学家擅长软件工程。听起来牛逼轰轰&#xff0c;事实却是&#xff0c;许多数据科学家有统计学背景&#xff0c;却没有什么软件工程方面的…

linux怎么添加工作组,linux 用户与工作组

在linux 里面&#xff0c;用户的编号UID &#xff0c;也就是用户的ID号。工作组的编号为GID 也就是工作组的ID 号 。1、用户的分类超级用户&#xff1a;root用户&#xff0c;系统安装过程中自动创建&#xff0c;UID 为0。普通用户&#xff1a;操作权限受到限制的用户id在 500-6…

MySQL5.7.12新密码登录方式及密码策略

原文链接&#xff1a;http://www.cnblogs.com/jonsea/p/5510219.html --------------------------------------------------------------------------- 松门一枝花补充 最简单的方法&#xff1a; 1、配置文件中把密码策略关了。本文中间部分有介绍。 2、重启服务 3、用my…

记一次,jvm 内存溢出

1、什么是内存泄漏内存泄漏是指&#xff0c;有未被释放的java对象&#xff0c;一直停留在内存中。GCRoot 无法追踪到此对象&#xff0c;导致此对象无法被回收。 2、什么是内存溢出内存溢出是指&#xff0c;java程序创建对象需要内存&#xff0c;但是却没有内存可用了&#xff0…

钻石指标和完美的计算

钻石的高度计算公式为&#xff1a;钻石的高度直径的三次方&#xff08;单位毫米&#xff09;0.00366(允许有0.03克拉的误差)例如&#xff0c;0.5克拉的钻石直径是5.01毫米&#xff0c;则它的高为&#xff1a;5.01*5.01*5.01*0.003660.46说明0.5克拉的钻石直径只有0.46克拉钻石的…

Spark应用日志级别设置

Spark-core包设置默认的日志级别为info&#xff0c;所以我们才看到一大堆日志信息。 开发的时候&#xff0c;把print的日志掩盖了。 方法一&#xff1a; 代码中设置日志级别 JavaSparkContext contextnew JavaSparkContext(conf); context.setLogLevel("warn"); 方…

linux find 按类型查找,Linux find查找find命令详解

玩蛇网推荐图文教程&#xff1a;python 列表Linux命令有很多&#xff0c;今天要介绍的是常用的基础命令中的find命令。find是Linux系统管理员所喜爱用的必备工具命令之一&#xff0c;它的作用是可以很轻松地找到你想要的文件&#xff0c;一个命令就可以在众多文件中找到你的目标…

window安装gcc编译器

在使用 GraphLab Create 时&#xff0c;导入包失败&#xff0c;提示libs没有的导入&#xff0c;而这些libs的编译是需要gcc。 1、访问&#xff1a;http://www.mingw.org/ 下载。 2、双击安装 3、安装好后会弹出下面的组件安装界面 3、找到mingw32-gcc-g&#xff08;注意cl…

element表格实现树形全选_很实用!word中全选的快捷键介绍及使用方法

全选快捷键可以提高我们在操作word时工作效率&#xff0c;在操作Word2003中怎么对文档中的文字进行全选呢?下面为大家提供几种全选的方法&#xff0c;绝对好用。Word怎样全选?方法一、使用Word全选快捷键“CtrlA”进行全选(也适用于电子表格);方法二、展开菜单栏中的“编辑”…

linux 视频编辑 ffmpeg,ffmpeg转码视频真的好用!(ffmpeg的简单使用方法)

说明转码和编辑视频今天用Android Studio(后面简称AS)里的模拟器给系统录屏&#xff0c;用来展示OpenGL可视化的东西&#xff0c;打算上传B站&#xff0c;后来发现AS只能保存webm格式和GIF格式的视频&#xff0c;并且文件体积巨大&#xff0c;视频图像也是顺时针旋转的。没办法…

requests库入门09-OAUTH认证

实际登陆中&#xff0c;认证用到的token会变的&#xff0c;不过可以在GIthub设置一个私人token。 如图&#xff0c;登录GIthub&#xff0c;然后用户下面选择Settings/Developer settings/Personal access tokens,点击Generate new token&#xff0c;然后随便输个描述&#xff0…

深入了解HashMap

什么是hash&#xff1f;哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值&#xff0c;这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母&#xff0c;随后的哈希都将产生不同的值。要找…

snort入侵检测系统下载Linux,入侵检测系统Snort 2.9.0.2 发布

Snort 是一个免费的、跨平台的软件包&#xff0c;用作监视小型 TCP/IP 网的嗅探器、日志记录、侵入探测器。Snort 是全世界上使用最广泛的入侵预防与侦测软件。Snort 有三种工作模式&#xff1a;嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并…