【数组、双指针】day6_142. 环形链表 II

【数组、双指针】day6_142. 环形链表 II给定一个链表的头节点  head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表

给定一个链表的头节点  head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null

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

不允许修改 链表。

示例 1:

【数组、双指针】day6_142. 环形链表 II

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

示例 2:

【数组、双指针】day6_142. 环形链表 II

输入: head = [1,2], pos = 0
输出: 返回索引为 0 的链表节点
解释: 链表中有一个环,其尾部连接到第一个节点。

示例 3:

【数组、双指针】day6_142. 环形链表 II

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

 

提示:

  • 链表中节点的数目范围在范围 [0, 104] 内
  • -105 <= Node.val <= 105
  • pos 的值为 -1 或者链表中的一个有效索引

题解

思路: 1.遍历链表,使用集合存储链表节点,当遇到已存储过的节点时,说明已经成环,直接返回即可

时间复杂度:O(n) 空间复杂度:O(n)

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode detectCycle(ListNode head) {
        ListNode temp = head;
        HashSet<ListNode> set = new HashSet<>();
        while(temp != null){
            if(set.contains(temp)){
                return temp;
            }else{
                set.add(temp);
            }
            temp = temp.next;
        }
        return null;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/36787.html

(0)
上一篇 2023-11-13
下一篇 2023-11-13

相关推荐

  • 很用心的为你写了 9 道 MySQL 面试题「终于解决」

    很用心的为你写了 9 道 MySQL 面试题「终于解决」MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。 非关系型数据库(…

    2023-04-02
    91
  • mysql 事务隔离级别解析和实战解析区别_innodb事务隔离级别

    mysql 事务隔离级别解析和实战解析区别_innodb事务隔离级别用户可以用SET TRANSACTION语句改变单个会话或者所有新进连接的隔离级别。语法如下: 当一个事务访问一个数据,并且进行了修改。另一个事务读到了被修改的数据,并且使用了这个数据。 在同一个事务内,多次读取同一个数据,此时事务还没有完成。另一个事务在前一个事务两次读取之间…

    2023-04-02
    112
  • 可能是最漂亮的Spring事务管理详解[亲测有效]

    可能是最漂亮的Spring事务管理详解[亲测有效]事务是逻辑上的一组操作,要么都执行,要么都不执行. 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 持久性: 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 所谓事务管理,其实就是…

    2023-04-03
    96
  • HTML+CSS+JS实现 贪吃蛇游戏源码

    HTML+CSS+JS实现 贪吃蛇游戏源码meta name=”viewport” content=”width=device-width, initial-scale=1.var canvas = document.var ctx = canvas.self.self.self.self.ctx.ctx.fillRe…

    2023-11-14
    83
  • mysql数据库运行原理_前端后端数据库的关系

    mysql数据库运行原理_前端后端数据库的关系整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。 mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要。 主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。(binlog线程) 从数据库把主数据库的bin-l…

    2023-04-02
    107
  • union的使用[亲测有效]

    union的使用[亲测有效]

    2023-07-03
    90
  • 数据类型相关以及堆栈知识

    数据类型相关以及堆栈知识两大数据类型 基本数据类型:number\string\boolean\null\undefined\symbol\bigint 引用数据类型:object\function 类型判断方法 typeo

    2023-11-16
    77
  • scriptable脚本分享_优化源码

    scriptable脚本分享_优化源码代码笔记 为一系列的文章,从一个python ,django 完整项目的所用到的环境和工具讲起,随时供自己备查,进阶全栈工程师的狂暴之路。

    2022-12-14
    106

发表回复

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