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;
    }
相关推荐
一叶飘零_sweeeet11 分钟前
2025 实战复盘:物联网 + 数据检索融合项目的核心技术实现与心得
java·物联网·mqtt
码农水水13 分钟前
阿里Java面试被问:慢查询的优化方案
java·adb·面试
222you29 分钟前
RuoYi-Vue3的项目搭建
java
C++业余爱好者35 分钟前
Hibernate 框架超详细说明
java·开发语言
零度@1 小时前
30条Java性能优化清单
java·开发语言
Komorebi゛1 小时前
【Vue3+Element Plus】el-dialog弹窗点击遮罩层无法关闭弹窗问题记录
前端·vue.js·elementui
期待のcode1 小时前
Java的包装类
java·开发语言
vim怎么退出1 小时前
一次线上样式问题复盘:当你钻进 CSS 牛角尖时,问题可能根本不在 CSS
前端·css
李少兄1 小时前
从一篇IDEA笔记开始,我走出了自己的技术创作路
java·笔记·intellij-idea
echo_e1 小时前
手搓前端虚拟列表
前端