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;
    }
相关推荐
一 乐3 分钟前
高校评教|基于SpringBoot+vue高校学生评教系统 (源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
自在极意功。5 分钟前
手写Tomcat:深入理解Servlet容器工作原理
java·servlet·tomcat·socket
Boop_wu6 分钟前
[Java EE] 字符流和字节流实例
java·开发语言·apache
是一个Bug6 分钟前
Spring事件监听器在电商订单系统中的应用
java·python·spring
爱分享的鱼鱼9 分钟前
Vue生命周期钩子详解与实战应用
前端·vue.js
晴殇i28 分钟前
CSS Grid 与 Flexbox:现代前端布局的双子星
前端·css
曹卫平dudu32 分钟前
一起学习TailWind Css
前端·css
Arva .33 分钟前
讲一下 Spring 中用到的设计模式
java·spring·设计模式
sosojie38 分钟前
and+design的table前端本地分页处理
前端·vue.js