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;
    }
相关推荐
我是人✓几秒前
从零入门 Servlet:JavaWeb 核心组件的实操与理解
java·servlet
lay_liu7 分钟前
Spring Boot 自动配置
java·spring boot·后端
猪八宅百炼成仙12 分钟前
解决Vue项目中scrollIntoView导致的布局异常问题
前端
miss22 分钟前
Vue2 → Vue3 深度对比:8 大核心优化,性能提升 2 倍
前端·vue.js·架构
殷紫川24 分钟前
线上故障零扩散:全链路监控、智能告警与应急响应 SOP 完整落地指南
java·架构·监控
前端小雪的博客.30 分钟前
Java的面向对象:封装详解(0基础入门版)
java·java入门·java面向对象·封装详解·java封装·0基础学java·getter和setter
左左右右左右摇晃33 分钟前
Java并发——死锁
java·开发语言·spring
沫离痕34 分钟前
AI机器人客服-Dify接入
开发语言·javascript·ecmascript
ShayneLee839 分钟前
jar-替换依赖包
java·jar
standovon1 小时前
Spring Boot+Vue项目从零入手
java