设计测试用例——判断链表是否有环

设计测试用例——判断链表是否有环

关键词:链表,环

思路:

1) 首先定义链表,即确定可用的数据结构可为linkedList;

2) 链表成环,首先至少得存在链表,其次,环——即从一个节点出发,走一圈会回到初始节点。

因此,我们确认实现步骤:首先定义节点,然后由节点实现链表,再对链表是否有环作出判断。

核心算法:

详细分析,有以下几种情况:

1、空链表,无环

2、链表只有一个节点,无环

3、链表节点数>=2,可能存在环

核心是如何判断链表有环,这里采用【快慢指针】法:类比两个跑步速度不一样的人,一起出发,当快的人比慢个人多跑一圈时,两人再次相遇。

【慢指针法】

前提:链表存在至少2个节点

初始化:两个节点,节点1(定义为慢指针)引用链表头节点,节点2(定义为快指针)引用头节点的下一个节点(这样定义的好处是链表为空或只有一个节点,可直接返回无环判断)

跑圈:慢节点每次向前走1步,快节点每次向前走2步,若快节点或慢节点走到nu

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值