[力扣 Hot100]Day25 环形链表

题目描述

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

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

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

出处

思路

经典考研题,使用快慢两指针,若有换两指针必在有限时间O(n)内相遇,若无环则快指针先一步走到链表尾。

代码

cpp 复制代码
class Solution {
public:
    bool hasCycle(ListNode *head) {
        ListNode *fast=head;
        ListNode *slow=head;
        while(fast && slow) {
            fast = fast->next;
            if(!fast) return false;//一定是快指针先到末尾
            else fast = fast->next;
            slow = slow->next;
            if(fast==slow) return true;
        }
        return false;
    }
};
相关推荐
zkmall2 分钟前
推荐算法工程化:ZKmall模板商城的B2C 商城的用户分层推荐策略
算法·机器学习·推荐算法
矿渣渣29 分钟前
AFFS2 的 `yaffs_ext_tags` 数据结构详解
数据结构·算法·文件系统·yaffs2
workflower39 分钟前
使用谱聚类将相似度矩阵分为2类
人工智能·深度学习·算法·机器学习·设计模式·软件工程·软件需求
cwywsx1 小时前
Linux:进程控制2
linux·运维·算法
真的想上岸啊1 小时前
c语言第一个小游戏:贪吃蛇小游戏06
c语言·算法·链表
边跑边掩护1 小时前
LeetCode 648 单词替换题解
算法·leetcode·职场和发展
小森77672 小时前
(七)深度学习---神经网络原理与实现
人工智能·深度学习·神经网络·算法
chenyuhao20242 小时前
链表的面试题4之合并有序链表
数据结构·链表·面试·c#
迷茫不知归路2 小时前
操作系统实验习题解析 上篇
c++·算法·操作系统·实验课设
愚润求学2 小时前
【递归、搜索与回溯】专题一:递归(二)
c++·笔记·算法·leetcode