重温算法之环形链表 II

简介: 有时候一些题目如果借助额外的空间,比如hash这种会事半功倍,但是其实这种算是一种'投机取巧'的做法,在现有的前提是实现算法,解题的最佳方法应该是不借助额外的空间,即减小其时间复杂度。

微信截图_20220531173728.png

一.题目介绍


1.题目来源


链接:LeetCode


2.题目


给定一个链表的头节点head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始。如果pos是-1,则在该链表中没有环。 注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改链表。 (官方的示例1图居挂了)微信截图_20220531181816.png


二.具体实现


1.实现思路


之前也遇到个是否有环的问题,而且是否有环的判断还是对数组中的元素进行遍历以后,对了元素依次比较然后判断其是否头尾相接即存在环,反正则不存在,这题借助hashset的特点就很容易实现,如果题目提到不需要额外的空间则hashset就不能使用了,那接下来看看具体的实现。


2.实现代码


1)自己的实现方式

public ListNode detectCycle(ListNode head) {
       //借助hashset
        HashSet<ListNode> set = new HashSet<>();
        while (head != null) {
        //将元素添加到hashset中
            set.add(head);
            head = head.next;
            //如果添加时发现元素已存在,即首尾相接,找到了环反正则没有找到,没有存在环
            if (set.contains(head)) {
                return head;
            }
        }
        return null;
    }
复制代码


2)题友的实现方式


使用快慢指针判断是否为环形,并且将快指针重新指向头,下一次和慢指针相交就是环形开始处。微信截图_20220531181951.png


3.运行结果

微信截图_20220531182036.png


三.题后思考


有时候一些题目如果借助额外的空间,比如hash这种会事半功倍,但是其实这种算是一种'投机取巧'的做法,在现有的前提是实现算法,解题的最佳方法应该是不借助额外的空间,即减小其时间复杂度。

目录
相关文章
|
1月前
|
算法
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
65 1
|
1月前
|
算法 索引
❤️算法笔记❤️-(每日一刷-141、环形链表)
❤️算法笔记❤️-(每日一刷-141、环形链表)
46 0
|
1月前
|
算法
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
43 0
|
1月前
|
算法
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
32 0
|
1月前
|
存储 算法
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
90 0
|
20天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
20天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
1月前
|
存储 缓存 算法
经典算法之链表篇(三)
经典算法之链表篇(三)
|
1月前
|
算法
经典算法之链表篇(二)
经典算法之链表篇(二)
|
1月前
|
算法 索引
经典算法之链表篇
经典算法之链表篇