141. 环形链表(链表)

141. 环形链表(链表)给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:head = [3,2,0,-4],

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

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

进阶:

你能用 O(1)(即,常量)内存解决此问题吗?

示例 1:



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



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



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

提示:

链表中节点的数目范围是 [0, 104]
-105 <= Node.val <= 105
pos 为 -1 或者链表中的一个 有效索引 。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */
set<ListNode *>m;
class Solution { 
   
public:
    
    bool hasCycle(ListNode *head) { 
   
        ListNode * t = head;
        if(head == NULL || head->next == NULL)return false;
        ListNode *tt = head ->next;
        while(t != NULL && tt != NULL){ 
   
            t = t->next;
            tt = tt->next;
            if(tt == t)return true;
            if(tt == NULL)return false;
            else tt = tt->next;
            if(tt == t)return true;
        }
        return false;
    }
};
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */
set<ListNode *>m;
class Solution { 
   
public:
    
    bool hasCycle(ListNode *head) { 
   
        if(head == NULL || head -> next == NULL)return false;
        ListNode *slow = head,*fast = head -> next;
        while(fast != NULL){ 
   
            if(slow == fast)return true;
            slow = slow -> next;
            if(fast -> next == NULL)return false;
            fast = fast -> next -> next;
        }
        return false;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168554.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 下午3:46
下一篇 2022年8月9日 下午4:00


相关推荐

  • GPT-Image-1.5:旗舰图像模型

    GPT-Image-1.5:旗舰图像模型

    2026年3月15日
    1
  • 有没有支持5V输入和9V输入给两串8.4V锂电池充电的芯片IC「建议收藏」

    有没有支持5V输入和9V输入给两串8.4V锂电池充电的芯片IC「建议收藏」有的FS4062支持5V和9V同步升降压充电8.4V两床锂电池,也就是5V9V适配器自动识别两串8.4V锂电池高效充电管理芯片概述:FS4062是一款宽电压输入,专门为7.4V双节锂电池充电的充电管理芯片,兼容5V,9V适配器。在5V供电的情况下,实现升压充电,电池端最大充电电流1.3A,在9V供电的情况下,实现降压充电,电池端最大充电电流1.2A,充电电流可以通过外置电阻RSET来设定。低阻抗的电源通路可以使充电效率更高,减少充电时间,提高电池使用寿命。.

    2022年10月6日
    6
  • C++命名空间_thinkphp命名空间

    C++命名空间_thinkphp命名空间这篇文章不错转载

    2022年8月9日
    6
  • 基于全国产算力,科大讯飞正式发布讯飞星火X2大模型

    基于全国产算力,科大讯飞正式发布讯飞星火X2大模型

    2026年3月14日
    3
  • 一起学JAVA API Object String StringBuffer/StringBuilder

    一起学JAVA API Object String StringBuffer/StringBuilder1前言亲爱的小伙伴萌,目前我们看到的是Java基础部分的一个新的部分API,这是个啥,又能做啥呢?其实可以概括成一句话:帮助我们站在巨人的肩膀上,实现更加高效的开发,那么我们来一探究竟吧~2什么是APIAPI(ApplicationProgrammingInterface,应用程序接口)是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件可以访问的一些功能集,但又无需访问源码或理解内部工作机制的细节.API是一种通用功能集,有时公司会将API作为其公共开放系统,也就是公司制定自己的

    2022年5月25日
    32
  • Conda 创建和删除虚拟环境

    Conda 创建和删除虚拟环境conda 可以理解为一个工具 也是一个可执行命令 其核心功能是包管理和环境管理 包管理与 pip 的使用方法类似 环境管理则是允许用户方便滴安装不同版本的 python 环境并在不同环境之间快速地切换 conda 的设计理念 conda 将几乎所有的工具 第三方包都当作 package 进行管理 甚至包括 python 和 conda 自身 Anaconda 是一个打包的集合 里面预装好了 conda 某个版本的 python 各种 packages 等 1 安装 Anaconda 打开命令行输入 conda V 检验是否安装及当前 co

    2026年3月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号