环形链表


LeetCode 链接:环形链表

给定一个链表,判断链表中是否有环。

典型的套路题,记住思路即可,双指针不同速度向前移动,如果存在环的话肯定会进入到环里套圈,也就是说 fast 和 slow 会再次相遇

public class Solution {
    public boolean hasCycle(ListNode head) {
        if(head==null || head.next==null)
            return false;
        ListNode slow = head;
        ListNode fast = head.next;
        while(slow != fast){
            if(fast==null || fast.next==null) //fast 遇到 null 则说明没有环可以走到末尾
                return false;
            slow = slow.next;
            fast = fast.next.next;
        }
        return true;
    }
}
Copyright © jverson.com 2019 all right reserved,powered by Gitbook 23:08

results matching ""

    No results matching ""