LeetCode: Linked List Cycle
これは,与えられたLinkedListにループが存在するか否かの問題を探すものである.
問題を解く
順次探索するslowNodeとそれぞれ探索するfastNodeを発表した.
ループのないLinkedListの特徴は,探索の過程でいつかnextがnilになることである.
fastNodeとそのnextがnullであるかどうかをwhile文で確認します.
slowNodeとfastNodeが出会うとループが存在します.
import java.util.*;
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode slowNode = head;
ListNode fastNode = head;
while(fastNode != null && fastNode.next != null) {
slowNode = slowNode.next;
fastNode = fastNode.next.next;
if(slowNode == fastNode) {
return true;
}
}
return false;
}
}
Reference
この問題について(LeetCode: Linked List Cycle), 我々は、より多くの情報をここで見つけました https://velog.io/@wonhee010/LeetCode-Linked-List-Cycleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol