每日一题——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.hqwc.cn/news/298546.html

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

相关文章

synchronized详解

synchronized详解 基本使用源码解析常见面试题好书推荐 基本使用 Java中的synchronized关键字用于在多线程环境下确保数据同步。它可以用来修饰方法和代码块 当一个线程访问一个对象的synchronized方法或代码块时&#xff0c;其他线程将无法访问该对象的其他synchronized方法…

QT 构建项目报错Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

问题 Getting NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7获取 NoClassDefFoundError&#xff1a;无法初始化类 org.codehaus.groovy.vmplugin.v7.Java7 解决方法一 java版本 过高 将java版本降低&#xff0c;例如从java17降…

「Verilog学习笔记」并串转换

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 串并转换操作是非常灵活的操作&#xff0c;核心思想就是移位。串转并就是把1位的输入放到N位reg的最低位&#xff0c;然后N位reg左移一位&#xff0c;在把1位输入放到左移后…

「模问题」AI原生小游戏强势来袭!

WAVE SUMMIT 深度学习开发者大会2023 举办在即&#xff0c;为了让大家更好地体验文心大模型的各项能力&#xff0c;掌握Prompt的使用技巧&#xff0c;我们带来一个惊喜的消息&#xff1a;全新AI原生小游戏——「模问题」火热上线啦&#xff01; 「模问题」是基于文心大模型的能…

磁钢的取向和充磁方向

充磁是磁钢生产中的必备工序&#xff0c;如果磁铁不充磁&#xff0c;就不具备磁性&#xff0c;也就丧失了作为永磁材料的基本功能。磁钢作为一个立体的工件&#xff0c;形状和尺寸各异&#xff0c;如何给磁钢充磁&#xff1f;不同方向的充磁效果一样吗&#xff1f;今天我们就来…

智能仓储管理系统设计与实现

智能仓储管理系统设计与实现 第一章 绪论 1.1 设计背景 物联网&#xff08;英文&#xff1a;Internet of Things&#xff0c;缩写&#xff1a;IoT&#xff09;是万物相连的互联网&#xff0c;即把所有物品通过信息传感设备与互联网连接起来&#xff0c;以实现智能化识别、定位、…

C++ 比 C语言增加的新特性 3 之 命名空间namespace

1. 命名空间 1.1 命名空间 又称为“名字空间”&#xff0c;在内存&#xff08;全局&#xff09;中取一块区域并对其进行命名 实际例子&#xff1a; 同一个班级&#xff0c;两个同姓的人&#xff0c;例如&#xff1a;张三和张三&#xff0c;其中一个张三座位是在讲台右边&am…

Tg5032skn:高稳定性105℃高温

TG5032SKN是一款频率范围10MHz ~ 54MHz,具有高稳定的TCXO晶振&#xff0c;可与CMOS或裁剪正弦输出。外部尺寸5.0 3.2 1.45mm&#xff0c;超小型,质地轻。该系列晶振的额定工作范围-40℃~&#xfe62;105C内可高稳定性工作&#xff0c;使得信号频率的误差很小。。TG5032SKN与其…

电赛论文模板

2023全国大学生电子设计大赛 &#xff08;E 题&#xff09; 【本科组】 2023年8月5日 运动目标控制与自动追踪系统 摘 要 本设计以基于意法半导体与ARM公司生产的STM32F103RCT6单片机为控制核心&#xff0c;配合LM2596S降压模块&#xff0c;OPENMV&#xff0c;OLED显示屏&…

2023年小型计算机视觉总结

在过去的十年中&#xff0c;出现了许多涉及计算机视觉(CV)的项目&#xff0c;无论是小型的概念验证项目还是更大规模的生产应用。应用计算机视觉的方法是相当标准化的: 1、定义问题(分类、检测、跟踪、分割)、输入数据(图片的大小和类型、视野)和类别(正是我们想要的) 2、注释…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…