我目前正在重新學習一些以前在數據結構方面的知識,並決定處理諸如HackerRank等問題。我遇到了一個簡單的問題,我們必須在鏈表中檢測一個循環,但我似乎無法理解我做錯了什麼。我查看了其他答案,並理解了它們的語法和邏輯,但似乎無法找到我的代碼失敗的邏輯。我的代碼錯誤? (在鏈表中循環)
boolean hasCycle(Node head) {
if (head == null || head.next == null){
return false;
}
Node first = head;
Node second = head.next;
while (second != null){
if (first == second)
{
return true;
}
first = first.next;
second = second.next.next;
}
return false;
}
您的週期是什麼意思? –
而不是一個循環鏈表,其中最初的「尾」節點指向頭部,我正在檢查完整的鏈表以查看它是否是循環的。如果它有循環,它可以是一個節點指向另一個先前節點的地方。繼承人問題:https://www.hackerrank.com/challenges/ctci-linked-list-cycle –
該程序足夠小,您可以在調試器中逐行執行它。 –