leetcode刷题141 环形链表 Linked List Cycle(简单) Python Java

LeetCode——141,环形链表检测 /** * \* Created: liuhuichao * \* Date: 2019/7/24 * \* Time: 28:55 PM * \* Description:环形链表 * \ * 给定一个链表,判断链表中是否有环。 * <p> * 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,... 阅读详情

题目描述

给定一个链表,判断链表中是否有环。

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

示例 1:

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

示例 2:

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

输出:true

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

示例 3:

输入:head = [1], pos = -1

输出:false

解释:链表中没有环。

思路:将每次遍历到的节点和temp对比,看是否已经遍历过,若遍历过则返回true;若没遍历过则将该节点添加到temp中去。

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def hasCycle(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        temp = []
        h = head
        while h != None:
            if h in temp:
                return True
            else:
                temp.append(h)
                h = h.next
                
        return False

 

以下是Java版本:

题目很明确,给定一个链表,判断其中是否包含一个环路。有个额外的要求就是不使用额外的空间。

假如说没有这个额外的要求,有什么方法可以解决呢?创建一个哈希表,遍历链表中的每个元素,并将其假如哈希表中,加入哈希表之前判断是否已经存在于哈希表中,如果存在,则说明存在环,否则就是不存在环。但是,这个哈希表却占用了O(n)的空间,因此该思路不符合要求。

这里,我们可以使用快慢引用的思路。两个引用都指向链表头,从链表头开始遍历,慢引用每次前进一步,而快引用每次前进两步,如果链表是有环路的,那么快引用终将追上慢引用;如果没有环路,那么遍历就会有结束的时候。代码如下:

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

 

FreeRTOS实战:如何避免HAL_Delay在高优先级中断中的坑(附TIM6配置指南) 本文深入剖析了在STM32 FreeRTOS项目中,于高优先级中断内调用HAL_Delay函数导致系统假死的根本原因——SysTick时基被FreeRTOS占用且优先级最低。文章提供了治本方案:通过配置TIM6作为独立且最高优先级的HAL时基,实现与FreeRTOS系统心跳的解耦,并附上详细的CubeMX配置与代码移植指南,确保系统实时性与稳定性。 阅读详情

相关推荐

calibre QRC提取寄生参数

typical将上面的文件QCI_flow里面的文件 在Cp 到当前 ,其实应该是某几个文件,但是我给忘记了 就全cp过来了 ,无影响,不过也希望大佬指正。

2202_75711937的博客 1517

LeetCode141 - Linked List Cycle

问题描述: 判断一个链表中,是否存在循环   思路解析:       这个问题简单,但因为链表还不熟悉,特写一个帖子。       自己用的思路就是,顺着链表往下撸,把遍历过的地址存入到set容器中。每次遍历时,检查当前地址是否存在于set里;如果存在则表示经历过,有循环。 代码实现: class Solution { public: bool hasCycle(ListN...

减肥De狗的博客 236

版图学习汇总十一(DRC、LVS注意事项)

esd。

weixin_56071389的博客 2262

leecode No.141 环形链表(Java实现)

leecode No.141 环形链表(Java实现) 最近开始在刷leecode上的算法题,碰到比较有意思的题就找个地方记录一下。 题目描述: 给定一个链表,判断链表中是否有。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 解法:采用快慢指针。所谓快慢指针并不是某种语言已经有的内部实现,...

零分的博客 463

Kylin V10 ARM64离线安装ffmpeg实战指南

在国产化替代浪潮下,基于银河麒麟V10和ARM架构(如飞腾、鲲鹏)的内网服务器部署音视频处理服务成为常态。由于系统默认软件源缺乏aarch64包且无法连接外网,常规yum安装方式难以奏效。本文从离线安装的通用概念出发,剖析了在Kylin V10上安装ffmpeg的三大路线及其原理,重点介绍了源码编译法,包括依赖梳理、工具链准备、编译参数配置、常见错误排查等关键环节。同时,将这套依赖管理与离线部署方法论延伸至nginx、node.js、Python库及docker等场景,帮助读者建立一套可复用的国产化系统离线

weixin_33417488的博客 148

Innovus时钟树综合CTS实战:从原理到signoff的完整指南

时钟树综合(CTS)是数字后端实现中保障同步电路时序收敛的核心环节,其本质是在物理层面构建低偏斜、可控延迟的全局时钟分发网络。它基于静态时序分析(STA)原理,通过平衡clock skew、insertion delay、transition time与功耗面积等多维约束,对抗工艺电压温度(PVT)变异带来的时序不确定性。技术价值在于支撑GHz级高频芯片的setup/hold签核,广泛应用于CPU、GPU、AI加速器等复杂SoC的Innovus后端流程。本文聚焦CTS在Innovus工具链中的工程落地,覆盖

weixin_28523493的博客 223

【leetcode141】环形链表 Java题解

【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势 每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-...

illusion 290

(MATLAB)一维信号峰值检测findpeaks

一维信号波峰波谷检测,峰值、峰宽、到达时间计算。MATLAB自带的findpeaks函数能完成这一任务,在这里分享其基本用法与特殊用法。

HPC_ZY 2万+

[Leetcode][python]Linked List Cycle/Linked List Cycle II/环形链表/环形链表 II

Linked List Cycle题目大意判断一个链表中是否存在着一个环,能否在不申请额外空间的前提下完成?解题思路快慢指针代码class Solution(object): def hasCycle(self, head): &quot;&quot;&quot; :type head: ListNode :rtype: bool &quot;&quot;&quot; s

蛮三刀酱 746

瑞萨RH850/U2A8以太网模块mcal说明

如下所有功能的支持需要在达芬奇中开启EthGlobalTimeSupport。秒[32bit], 纳秒[32bit], 纳秒小数[20bit]每一帧发送数据的相关结构缓冲区都放在变量。每一帧接收数据的相关结构缓冲区都放在变量。

至道无难,唯嫌拣择。 1860

YOLOv13改进策略【Head】| 引入RT-DETR中的RTDETRDecoder,替换检测头

本文记录的是基于RTDETRDecoder模块的YOLOv13目标检测改进方法研究。RT-DETR的模块通过,能为解码器提供高质量的初始,从而。相比v13原始的检测头,RT-DETR能,替换后能够更好的提高模型性能。

Limiiiing的博客 433

LeetCode141.环形链表(Java实现)

LeetCode链接:https://leetcode-cn.com/problems/linked-list-cycle/ 设想一个环形跑道,两个人都向同一个方向跑,一个跑得慢,一个跑得快 跑上一段时间,跑得快的肯定会追上跑得慢的 快慢指针问题,可自行百度 思路: 1.链表判空 2.设置两个指针slow和fast,均从head开始 3.只要fast本身不是空,或者fast下一跳...

Teacher_HENG 703

⭐️VMwareWorkstation17.0虚拟机安装搭建Windows 7虚拟机(完整图文详细步骤含配置VMware Tools教程)

本教程为大家提供了从安装VMware Workstation 17.0开始,到在虚拟机上成功搭建Windows 7专业版系统的完整步骤。我们详细介绍了准备阶段所需的软件和硬件要求,以及在VMware中配置和安装Windows 7系统的每一步操作。此外,我们还特别提到了如何在虚拟机上配置VMware Tools,以便更好地与宿主机进行交互。 通过本教程的学习,读者不仅能够掌握在VMware Workstation 17.0上安装Windows 7虚拟机的技能,还能了解到如何配置虚拟机的硬件以及安装VMwar

Python老吕的博客 2万+

LeetCode 141:环形链表 Linked List Cycle

给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 Given a linked list, determine if it has a cycle in it. ...

104

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode 141. 环形链表(Linked List Cycle)

环形链表 环形链表(Linked List Cycle) 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点...

墨1024 183

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

141 环形链表 python_LeetCode 141:环形链表 Linked List Cycle

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。Given a linked list, determine if it has a cycle in it.To represent a cycle in the given linked list, we use an...

weixin_39588223的博客 111

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python 环形链表_LeetCode 141:环形链表 Linked List Cycle

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。Given a linked list, determine if it has a cycle in it.To represent a cycle in the given linked list, we use an...

weixin_39710396的博客 127

python创建一个环形链表_LeetCode 141:环形链表 Linked List Cycle

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。Given a linked list, determine if it has a cycle in it.To represent a cycle in the given linked list, we use an...

weixin_40002846的博客 230

python 释放链表节点_LeetCode 141:环形链表 Linked List Cycle

欢迎关注公.众号:爱写Bug(ID:iCodeBugs)给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。Given a linked list, determine if it has a cycle in it.To represent a cycle in the ...

weixin_29587015的博客 111

java环形链表,LeetCode 141. 环形链表(Linked List Cycle)

LeetCode.jpg环形链表为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。image示例 2:输入:head = [1,2], pos = 0输出:true解释:链表中有...

weixin_39743423的博客 142

leetcode刷题系列----模式1(Two Points 双指针)- 141:Linked List Cycle环形链表

Tips Java和C#核心代码完全一样。 这题比较简单,类似于时针和分针何时相遇。 注意算法与数据结构的定义高度绑定,一定参照如何定义链表来思考解决此类问题的算法。 Python # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def hasC

My_Communication的博客 1278

【LeetCode题解】142_环形链表2(Linked-List-Cycle-II)

文章目录描述解法一:哈希表思路Java 实现Python 实现复杂度分析解法二:双指针思路Java 实现Python 实现复杂度分析 描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 **说明:**不允许修改给定的链表。 进阶: 你是否可以不用额外空间解决此题? 解法一:哈希表 思路 最直接的解法就是利用一个集合保存每次遍历的节点的引用。之后,从链表头开始遍历,...

StrongXGP 的博客 510

141. 环形链表 Java解法

141. 环形链表 https://leetcode-cn.com/problems/linked-list-cycle/ 这道题不难,解决问题的本身是有最简单的解法的,就是利用哈希集合如果一旦出现了重复的情况,那就代表着你遇到了重复的节点了,这是最简单的办法,但是时间复杂度并不是最好的。 public boolean hasCycle(ListNode head) { Set<ListN...

RAYFUXK的专栏 269

LeetCode 141. 环形链表(java 实现)

给定一个链表,判断链表中是否有环。 进阶: 你能否不使用额外空间解决此题? /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * nex...

ccccc1997的博客 1655

leetcode刷题21 合并两个有序链表 Merge Two Sorted Lists(简单) Python Java

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 知识点: 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表...

SpringRolls的博客 899
上一篇: leetcode刷题136 只出现一次的数字 Single Number(简单) Python Java
下一篇: leetcode刷题155 最小栈 Min Stack(简单) Python Java
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值