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;
    }
相关推荐
Henray20241 分钟前
LRU缓存设计与实现
java·面试
gCode Teacher 格码致知4 分钟前
Javascript提高:canvas画布的网格背景-由Deepseek产生
javascript·css·css3
清灵xmf15 分钟前
JS 原生深拷贝的终极方案——structuredClone
前端·javascript·vue.js·json.stringify·structuredclone
甲方大人请饶命25 分钟前
SSM-基础
java·数据库·spring
前端 贾公子28 分钟前
响应式系统基础:依赖追踪的基础 —— 发布订阅模式(前端应用最广的设计模式)上
javascript·vue.js
谷雨不太卷30 分钟前
Linux基础IO
java·开发语言
索西引擎34 分钟前
【理论】TypeScript 函数重载:从 Vue 3 defineEmits 说起的类型安全实践
前端·typescript
小新同学^O^35 分钟前
简单学习 --> 文件IO
java·学习·文件io
女生也可以敲代码36 分钟前
2026前端面试题精选:大厂高频考点与标准答案
前端
Jinuss37 分钟前
代码质量管理工具-SonarQube
前端·代码规范