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;
    }
相关推荐
mjhcsp4 分钟前
C++ 后缀平衡树解析
android·java·c++
程序员小李白6 分钟前
CSS 盒子模型
前端·css·html
望舒5136 分钟前
代码随想录day33,动态规划part2
java·算法·leetcode·动态规划
Zzz不能停14 分钟前
单行 / 多行文本显示省略号(CSS 实现)
前端·css
xiaoxue..15 分钟前
TailwindCSS:从“样式民工”到“UI乐高大师”的逆袭
前端·css·ui
追随者永远是胜利者31 分钟前
(LeetCode-Hot100)169. 多数元素
java·算法·leetcode·go
蜜獾云42 分钟前
JAVA面试题速记-第1期-java基础
java·开发语言
百锦再1 小时前
Java中的反射机制详解:从原理到实践的全面剖析
java·开发语言·jvm·spring boot·struts·spring cloud·kafka
没有bug.的程序员1 小时前
Gradle 构建优化深度探秘:从 Java 核心到底层 Android 物理性能压榨实战指南
android·java·开发语言·分布式·缓存·gradle
tianyagukechat2 小时前
rockylinux9.5 配置IP
java·网络·tcp/ip