linked-list-cycle-ii

Given a linked list, determine if it has a cycle in it.

Follow up:
Can you solve it without using extra space?

public class LinkedListCycle
{
    //節點數據結構
    static class ListNode
    {
        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
            next = null;
        }
    }
    
    public static boolean detectCycle(ListNode head)
    {
        if(null == head)
        {
            return null;
        }
        //快慢指針
        ListNode _slow = head;
        ListNode _fast = head;
        
        while(null != _fast.next && null != _fast.next.next)
        {
            _slow = _slow.next;
            _fast = _fast.next.next;
            //快慢指針相遇,說明有環
            if(_slow == _fast)
            {
                return true;
            }
        }
        return false;
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章