LeetCode热题100-环形链表

根据以下题目描述pos 参数为系统表示链表的标志,咱们获取不到,所以只能使用快慢指针方法来判断链表中是否存在环形。一个走一步,一个一次走两步,等到fast和slow相等时即为存在环形。

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

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

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

python 复制代码
class Solution:
    def hasCycle(self, head: Optional[ListNode]) -> bool:
        fast = slow = head

        while True:
            if not fast or not fast.next:
                return False
            
            if fast == slow:
                return True
            
            fast = fast.next.next
            slow = slow.next
相关推荐
信奥卷王14 小时前
[GESP202609 六级] 分树规划
算法
夏幻灵14 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
徐小黑ACG15 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
Navigator_Z16 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
北极有牛16 小时前
cpp学习笔记--常量指针
java·开发语言·算法
GPU实战笔记16 小时前
云端 GPU 训练的账户余额提醒:它能说明什么,不能说明什么?
深度学习·算法·成本管理·gpu云计算·云端训练
浮链序17 小时前
怎么证明"你这个模型是偷我的"——把蒸馏变成取证工具
算法·安全·llm
小O的算法实验室17 小时前
IEEE TMC,面向异构物联网的多目标量子行为拓扑优化算法
算法
圣保罗的大教堂17 小时前
leetcode 301. 删除无效的括号 困难
leetcode