在面試問題中,「實現檢測循環存在的算法」。例如,鏈表有一個循環,如:使用C#在鏈表中循環檢測
0--->1---->2---->3---->4---->5---->6
▲ |
| ▼
11<—-22<—-12<—-9<—-8
使用Floyd的週期檢測,這個問題可以通過使用快速&慢指針來解決。所以我應該試着比較一下
a。 Link的節點值,即
if (fast.data == slow.data)
break;
其中快和慢的類型Link
class Link
{
int IData {get; set;}
Link Next {get; set;}
}
OR
B的。 他們是否指向相同的參考,即if (fast == slow)
謝謝。
'如果(快==慢)'是正確的檢查。 – Azodious