141循環リンクリスト
リストを指定すると、リストがリングかどうかが決定されます。
リングを与えられたリストを表示するために、我々は、POS整数(インデックスは0から始まる)リストの位置を表すために、リストの最後に接続されています。posが-1の場合、リングがこのリストに含まれていません。
例1:
入力:ヘッド= [3,2,0、-4] 、POS = 1つの
出力:真
説明:リストは、第2のノードに接続されたリングテール部分を有しています。
例2:
入力:ヘッド= [1,2]、POS = 0
出力:真
説明:リストは、最初のノードの尾部に接続されたリングを有しています。
例3:
入力:ヘッド= [1]、POS = -1
出力:偽
の解釈:リストは鳴りません。
高度:
あなたはこの問題を解決するためにO(1)(すなわち、一定の)メモリを使用することができますか?
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
if(head == null || head.next == null) return false;
ListNode fast = head.next;
ListNode slow = head;
while(fast != slow){
if(fast.next == null || fast.next.next == null) return false;
fast = fast.next.next;
slow = slow.next;
}
return true;
}
}