1. 程式人生 > >LeetCode_141. 環形連結串列

LeetCode_141. 環形連結串列

如果是環,兩個速度不一樣的數一定會在迴圈中相遇
public class S_141 {
    public class Solution {
        public boolean hasCycle(ListNode head) {
            // 判斷是否是空的
            if(head == null||head.next == null){
                return false;
            }
            // 建立兩個步進速度不同的變數
            ListNode fast = head;
            ListNode slow = head;
            // 在保證當前和下一個都有值的時候
            while(fast != null && fast.next != null){
                slow = slow.next;
                fast = fast.next.next;
                // 快的和慢的相遇代表是一個環
                if(slow == fast){
                    return true;
                }
            }
            return false;
        }
    }
}