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;
    }
相关推荐
jjw_zyfx几秒前
vue3 vite element根据自定义数据实现离散滑块
javascript·vue.js·ecmascript
北极糊的狐3 分钟前
Vue3 中页面重定向的方式
前端·javascript·vue.js
灵魂学者3 分钟前
Vue3.x 高阶 —— 组合式API
前端·javascript·vue.js
谷歌开发者3 分钟前
Web 开发指向标|在来源面板中使用 Chrome 开发者工具的 AI 辅助功能
前端·人工智能·chrome
〝七夜5694 分钟前
jdk1.8新增的类以及常用的方法有哪些?
java
小毛驴8504 分钟前
npm 代理配置
前端·npm·node.js
万岳科技程序员小金5 分钟前
在线教育系统源码选型对比:PHP、Java、Flutter、UniApp谁更适合?
java·uni-app·php·软件开发·在线教育系统源码·教育app开发·教育软件开发
唐古乌梁海6 分钟前
【AJAX】AJAX详解
前端·ajax·okhttp
FreeBuf_6 分钟前
430万Chrome与Edge用户遭ShadyPanda恶意软件七年攻击
前端·chrome·edge