我需要一个方法,该方法将链表作为参数,如果它是循环的,则返回 true 或 false。
例如:循环链表意味着有节点指向任何先前的节点。
我忘记告诉一些限制,我不能使用任何数据结构或动态内存分配。
我只能使用局部变量,并且正如有人对我所说的那样,算法可以在 n 步中完成(我现在正在考虑使用两个指针?)
我相信你正在寻找弗洛伊德的周期查找算法 http://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare。有一个比我能给出的更好的解释here http://ostermiller.org/find_loop_singly_linked_list.html.
还有一些 C 和 Scheme 的实现,其文档如下here http://en.literateprograms.org/Category:Floyd%27s_cycle_finding_algorithm.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)