141. Linked List Cycle

题目分析

原题链接,登陆 LeetCode 后可用
题目要求是检测一个链表中是否有环,可以用快慢指针的思路来解决。至于如果链表中有环,那么快慢指针一定会相遇的解释请参考为什么用快慢指针找链表的环,快指针和慢指针一定会相遇?

代码

public class Solution {
    public boolean hasCycle(ListNode head) {
        
        // 链表中没有元素或者只有一个元素
        if(head == null || head.next == null) {
            return false;
        }
        
        ListNode slow = head;
        ListNode fast = head.next;
        
        while(fast != slow) {
            if(fast == null || fast.next == null) {
                return false;
            }
            fast = fast.next.next;
            slow = slow.next;
        }
        
        return true;
    }
}
}

你可能感兴趣的:(141. Linked List Cycle)