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;
    }
相关推荐
爆更小哇7 小时前
Selenium自动化测试函数全解析(二)
java·selenium·测试工具·自动化
C雨后彩虹7 小时前
计算误码率
java·数据结构·算法·华为·面试
fanruitian7 小时前
Springboot项目父子工程
java·数据库·spring boot
小肖爱笑不爱笑7 小时前
SpringBoot Web
java·http协议·分层解耦·web后端
柒.梧.7 小时前
Spring核心知识全解析:从入门实战到进阶
java·后端·spring
hboot7 小时前
别再被 TS 类型冲突折磨了!一文搞懂类型合并规则
前端·typescript
乌日尼乐7 小时前
【Java基础整理】Java字符串处理,String、StringBuffer、StringBuilder
java·后端
在西安放羊的牛油果7 小时前
浅谈 import.meta.env 和 process.env 的区别
前端·vue.js·node.js
鹏北海8 小时前
从弹窗变胖到 npm 依赖管理:一次完整的问题排查记录
前端·npm·node.js
布列瑟农的星空8 小时前
js中的using声明
前端