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;
    }
相关推荐
九九落2 分钟前
前端获取经纬度完全指南:从Geolocation API到地图集成
前端·获取经纬度
来恩100316 分钟前
jQuery选择器
前端·javascript·jquery
前端繁华如梦18 分钟前
树上挂苹果还是挂玻璃球?Three.js 程序化果实的完整实现指南
前端·javascript
金銀銅鐵20 分钟前
[Java] 如何理解 class 文件中字段的 access flags?
java·后端
墨痕诉清风25 分钟前
Web浏览器客户端检测网站网络健康(代码)
前端·网络·测试工具
IMPYLH27 分钟前
Linux 的 wc 命令
linux·运维·服务器·前端·bash
小短腿的代码世界28 分钟前
Qt国际化深度解析:从源码到企业级多语言实践
java·数据库·qt
凌冰_38 分钟前
IDEA 集成Claude Code
java·ide
SXJR40 分钟前
Java中的Cross-Encoder模型解决方案
java·开发语言
happybasic44 分钟前
Python库升级标准流程~
linux·前端·python