linked-list-cycle-ii

来源:互联网 发布:三维人像建模软件 编辑:程序博客网 时间:2024/06/10 16:57

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;
    }

}

原创粉丝点击