【算法】给定一个链表,判断链表中是否有环

203 篇文章 9 订阅 ¥9.90 ¥99.00
本文介绍了三种判断链表中是否存在环的方法:1)通过比较新节点与之前节点;2)利用HashSet存储遍历过的节点;3)双指针法。方法3中,通过设置速度不同的两个指针,当它们在环中相遇时,可判断链表有环,并能进一步求出环的长度和入环节点。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1.概述

本文摘抄自 漫画算法:小灰的算法之旅.pdf 并且补充。

2.题目

有一个单向链表, 链表中有可能出现“环”, 就像下图这样。
那么, 如何用程序来判断该链表是否为有环链表呢?在这里插入图片描述
在这里插入图片描述

2.1 方法1:

首先从头节点开始, 依次遍历单链表中的每一个节点。 每遍历一个新节点, 就从头检查新节点之前的所有节点, 用新节点和此节点之前所
有节点依次做比较。 如果发现新节点和之前的某个节点相同, 则说明该节点被遍历过两次, 链表有环; 如果之前的所有节点中不存在与新节点相同的节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值