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;
    }
相关推荐
冴羽yayujs12 分钟前
JavaScript 9 个先有库再有 API 的故事
开发语言·javascript·ecmascript
油丶酸萝卜别吃30 分钟前
JavaScript 深度合并函数 deepMerge 实现指南(附完整测试用例)
开发语言·javascript·测试用例
问心无愧051331 分钟前
ctf show web 入门152
前端·笔记
kyriewen31 分钟前
Copilot下个月按Token收钱,我算了一笔账:重度用户一年要多花3000块
前端·javascript·openai
YOU OU35 分钟前
SpringBoot 配置文件
java·spring boot·后端
c++之路36 分钟前
观察者模式(Observer Pattern)
java·网络·观察者模式
Dicky-_-zhang38 分钟前
云原生存储与数据库选型实战:从传统数据库到云原生数据库的演进
java·jvm
凝小飞42 分钟前
cucumber JAVA 一键部署指南
java·集成测试·模块测试
java修仙传43 分钟前
Java 实习日记:断面状态筛选 Bug 修复与对比案例日期过滤优化
java·bug·实习
长谷深风1111 小时前
Java并发编程:线程安全与多线程实战指南【个人八股】
java·安全·线程·进程·juc·并发与并行·上下文切换(性能影响因素)