2016 - 2024

感恩一路有你

java怎么实现链表 如何判断一个单链表是有环的?

浏览量:2100 时间:2021-03-27 04:00:32 作者:admin

如何判断一个单链表是有环的?

给定一个单链表,尝试判断单链表中是否有环。答:该算法的思想是设置两个指针P和Q,其中P一次向前移动一步,Q一次向前移动两步。如果单链表中有一个环,那么p和Q相遇;否则,Q将首先遇到null。R假设单链表的长度为n,单链表是循环的,那么在第i次迭代中,P指向元素i mod n,Q指向元素2I mod n,所以当i≡2I(mod n)时,P和Q满足。当I=n,P和Q满足时,I≡2I(MOD n)=>(2I-I)MOD n=0=> I MOD n=0=>。这里有一个简单的理解,就是P和Q同时在操场上跑,Q跑的速度是P的两倍,当他们两人同时出发时,P跑一圈就到了起点,Q跑两圈就到了起点。如果P的起点和Q的起点不同呢?假设在第I次迭代时P指向元素I mod N,Q指向k2i mod N,其中0

java怎么实现链表 java单链表实现 java手写单链表

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。