多语言展示
当前在线:697今日阅读:168今日分享:49

C语言判断链表是否有环

本文介绍链表有环的判断方法,其实在各大面试题中会经常遇到,也是一类常见的问题,上学时老师也曾提到,可是工作之后仍然会有很多人对此理解不透测,这里假设为单链表作为讨论对象。
工具/原料
1

C语言

2

Linux GCC或者Windows VC

方法/步骤
1

思路分析:环即尾结点的Next指针域指向头结点,这就好办了,如果我们遍历链表至最后一个结点时,发现其Next指针域为空NULL,也就不存在环,解题思路一定要明确。

2

如何用程序去表达这个算法呢?其实有多种方法,首先我们描述最简单的一种:对于单链表而言,只有通过从头到尾的遍历方式,如果发现尾指针指向头指针则说明有环,也就是前面分析过的思路用C程序实现一遍。

3

上面的方法比较简单,只是算法效率不太高,这里有第二种方法可以实现:使用双指针,一个遍历的速度快,一个较慢,如果快的指针追上了慢的那个说明有环

4

以上仅供参考,不足之处请大家见谅。

推荐信息