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;
    }
相关推荐
张np10 小时前
java基础-LinkedList(链表)
java
CodeSheep10 小时前
裁员为什么先裁技术人员?网友一针见血
前端·后端·程序员
CoderYanger10 小时前
A.每日一题——3512. 使数组和能被 K 整除的最少操作次数
java·数据结构·算法·leetcode·职场和发展·1024程序员节
前端小王呀10 小时前
自定义图表相关配置
android·前端·javascript
雨中飘荡的记忆10 小时前
设计模式之享元模式详解
java·设计模式·享元模式
chilavert31810 小时前
技术演进中的开发沉思-226 Ajax:前端兼容
javascript·架构
西西学代码10 小时前
flutter---进度条
前端·javascript·flutter
梓德原10 小时前
【C语言】C语言如何向系统接要存
java·c语言·算法
WX-bisheyuange10 小时前
基于Spring Boot的流浪动物管理系统
java·spring boot·后端