算法编程(八):环形链表

简介: 算法编程(八):环形链表

写在前面


今天还说难度简单系列题目继续,《环形链表》,从题目一听就是关于链表的一道题,上一题刚送走了一个二叉树数据结构,这次又来了一个链表题目。

大家可以在这道题里面体会体会链表的一些特性和如何处理链表。

image.png

题目解读


从这道题目上来看,我们主要就是要了解链表的基础知识,比如从题目示例上来看,链表是一个首尾可能都会存在链表元素的数据结构。

而且可以存在环形相连的情况,当然这在日常开发中不经常遇到,因为一旦遇到一般都是报错了。

再者就是如何判断一个链表对象是否存在环形结构。

这里一般最暴力的手法就是通过循环遍历,然后通过去重集合或者别的什么,将已经遍历过的元素对象存储下来。

在每次遍历之前先判断是否已经存在对象,如果存在的话,自然也就是存在环形结构的链表了。

代码实现


本次运行的代码如下,此次使用的方法就是通过循环来获取链表的每一个对象值,然后通过Set来存储判断是否存在,效率较差。


/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public boolean hasCycle(ListNode head) {
        Set<ListNode> set = new HashSet<>();
        while (head != null) {
            if (!set.add(head)) {
                return true;
            }
            head = head.next;
        }
        return false;
    }
}


执行结果


通过Set来存储ListNode对象,是一个不智之举,但是是一个快速的方法,这思路实现起来非常简单,就是效率不咋地。

image.png

其他思路


暂无,大家有什么想法可以评论区见。

总结


相信关于链表,还是要通过递归、或者循环来解决部分问题的,因为要逐渐递进到最后一个元素才行,所以你搞清了吗?


相关文章
|
2月前
|
算法
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
76 1
|
2月前
|
算法 索引
❤️算法笔记❤️-(每日一刷-141、环形链表)
❤️算法笔记❤️-(每日一刷-141、环形链表)
51 0
|
2月前
|
算法
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
49 0
|
2月前
|
算法
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
33 0
|
2月前
|
存储 算法
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
108 0
|
1月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
49 2
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
2月前
|
存储 缓存 算法
经典算法之链表篇(三)
经典算法之链表篇(三)
|
2月前
|
算法
经典算法之链表篇(二)
经典算法之链表篇(二)
下一篇
DataWorks