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;
    }
相关推荐
光影少年8 分钟前
Vue的响应式原理?Vue2和Vue3有什么区别?
前端·vue.js·掘金·金石计划
孟祥_成都16 分钟前
Cursor 要被淘汰了?开发者最应该关注的 10 个信号
前端·人工智能
cxxcode25 分钟前
Sentry browserTracingIntegration 实现原理深度解析
前端
孟沐28 分钟前
大白话理解 Java 序列化:对标前端 JSON.stringify/parse
前端
忘ci31 分钟前
electron、edge.js调用C#动态链接库的一些问题
前端
yannick_liu33 分钟前
推荐一个可以在vue2中格式化json数据的插件
前端
可视之道34 分钟前
Canvas 渲染引擎性能优化实战:从 15 FPS 到 55 FPS
前端
进击的尘埃1 小时前
拖拽搭建场景下的智能布局算法:栅格吸附、参考线与响应式出码
javascript
小猪努力学前端1 小时前
基于PixiJS的试玩广告开发-续篇
前端·javascript·游戏
bluceli1 小时前
前端构建工具深度解析:从Webpack到Vite的演进之路
前端