LC142.环形链表II

java 复制代码
/**
     * 题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/
     * 使用 map集合来存储链表的结点,在每次添加节点的时候使用map.containsValue()方法进行判断,
     * 如果存在相同的节点,就说明有环,然后返回当前节点
     * 举例:3 =》2 =》0 =》3 (这里0指向头节点 3)
     *     我们依次向map中存储节点:
     *     0: 3,
     *     1: 2,
     *     2: 0,
     *   再次添加3的时候,发现map中已经存在该节点,因此返回 3
     * @param head
     * @return
*/
    public static ListNode detectCycle(ListNode head) {
        Map<Integer, ListNode> map =  new HashMap<>();
        int i = 0 ;
        while(head != null){
            if(map.containsValue(head)){
                return head;
            }
            else{
                map.put(i, head);
                i ++ ;
                head = head.next;
            }
        }
        return null;
    }
相关推荐
jiankeljx2 分钟前
Spring Initializr创建springboot项目,提示java 错误 无效的源发行版:16
java·spring boot·spring
competes2 分钟前
深圳程序员职业生涯
java·大数据·开发语言·人工智能·java-ee
深蓝轨迹4 分钟前
Redis 消息队列
java·数据库·redis·缓存·面试·秒杀
coderYYY6 分钟前
git push报错Authentication failed for ‘xxx’也不会弹要求输入用户名密码的最终解决方法
前端·git·gitee·github
小小小米粒14 分钟前
Collection(单列集合)、Map(双列集合),容易搞混的 Collections 工具类。
java·开发语言
skiy25 分钟前
springboot+全局异常处理
java·spring boot·spring
愤豆26 分钟前
07-Java语言核心-JVM原理-JVM对象模型详解
java·jvm·c#
东离与糖宝31 分钟前
零基础Java学生面试通关手册:项目+算法+框架一次搞定
java·人工智能·面试
gaozhiyong081333 分钟前
超越跑分:Gemini 3.1 Pro 2026年多维度能力评估体系深度拆解
java·开发语言
皙然34 分钟前
深入解析Java volatile关键字:作用、底层原理与实战避坑
java·开发语言