链表习题之环形链表

一、环形链表I

给定一个链表,判断链表中是否有环。

141. 环形链表 - 力扣(LeetCode)

思路:快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环则一定会在环中相遇,否则快指针率先走到链表末尾。

拓展:1.为什么一定会相遇,有没有可能会错过,永远追不上?请证明。

fast、slow均从起始位置开始走

2.slow一次走1步,fast一次走3步可以吗?请证明。

证明slow一次走1步,fast一次走3步:N%2==0     N%2==1

上图中写到N为奇数,C-1是奇数也为奇数(即C为偶数),就永远追不上。请证明N为奇数,C为偶数是否存在。

结论:一定能追上,N是偶数第一轮就追上了;N是奇数第一轮追不上,C-1是偶数第二轮就追上了

二、环形链表II

给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回NULL。

142. 环形链表 II - 力扣(LeetCode)

思路: 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值