在面试问题中,“实施一种检测循环存在的算法。”。例如,链表有一个循环,如:
0--->1---->2---->3---->4---->5---->6
▲ |
| ▼
11<—-22<—-12<—-9<—-8
使用弗洛伊德的循环检测,这个问题可以通过使用快慢指针来解决。所以我应该尝试比较
一种。链接的节点值,即
if (fast.data == slow.data)
break;
快慢是类型Link
class Link
{
int IData {get; set;}
Link Next {get; set;}
}
或者
湾。他们是否指向相同的参考,即if (fast == slow)
谢谢。