141.判斷是否有環形列表 LeetCode java實現 演算法之旅
阿新 • • 發佈:2018-12-21
141.判斷是否有環形列表
方法1:破解法:執行一分鐘,判斷是否最後為空
方法2:存節點。用set集合來儲存節點,判斷是否有重複(時間複雜度:O(n))
方法3:快慢指標:定義兩個指標,slow,fast,slow+1,fast+2。如果有環,fast和slow會相遇,即相等。
方法3程式碼:
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode fast = head;
ListNode slow = head;
while(slow != null && fast != null && fast.next != null){//fast.next的判斷:判斷接下來是否還有資料
slow = slow.next;
fast = fast.next.next;
if(slow==fast)
return true;
}
return false;
}
}