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;
    }
相关推荐
PEI047 小时前
MVCC(多版本并发控制)
java·开发语言·数据库
Hierifer8 小时前
跨端技术:浅聊双线程原理和实现
前端
FreeBuf_8 小时前
加密货币武器化:恶意npm包利用以太坊智能合约实现隐蔽通信
前端·npm·智能合约
java水泥工8 小时前
基于Echarts+HTML5可视化数据大屏展示-图书馆大屏看板
前端·echarts·html5
EndingCoder8 小时前
Electron 性能优化:内存管理和渲染效率
javascript·性能优化·electron·前端框架
半夏陌离8 小时前
SQL 实战指南:电商订单数据分析(订单 / 用户 / 商品表关联 + 统计需求)
java·大数据·前端
子兮曰8 小时前
🚀Vue3异步组件:90%开发者不知道的性能陷阱与2025最佳实践
前端·vue.js·vite
牛十二8 小时前
mac-intel操作系统go-stock项目(股票分析工具)安装与配置指南
开发语言·前端·javascript
我真的是大笨蛋9 小时前
K8S-Pod(上)
java·云原生·容器·kubernetes