ÕâµÀÌâÊÇcc150ÀïÃæµÄÌâÄ¿£¬ËãÊÇÁ´±íÀïÃæ±È½Ï¾µäµÄÌâÄ¿¡£
ÎÒÃÇÏȽ²Ò»Ï±ȽÏÖ±½ÓÈÝÒ×Ïëµ½µÄ·½·¨£¬¾ÍÊÇÓÃÒ»¸öhashset£¬È»ºó°Ñɨ¹ýµÄ½áµã·ÅÈëhashsetÖУ¬Èç¹û³öÏÖÖØ¸´Ôò·µ»Øtrue¡£Ïë·¨±È½Ï¼òµ¥£¬Ò²ºÜºÃʵÏÖ£¬ÕâÀï¾Í²»·Å´úÂëÁË£¬ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔдд¡£
ÏÂÃæÎÒÃÇÀ´¿¼ÂÇÈçºÎ²»ÓöîÍâ¿Õ¼äÀ´ÅжÏÊÇ·ñÓÐcycle£¬Óõ½µÄ·½·¨ºÜµäÐÍ£¬¾ÍÊÇÄÇÖÖwalker-runnerµÄ·½·¨£¬»ù±¾Ïë·¨¾ÍÊÇά»¤Á½¸öÖ¸Õ룬һ¸ö×ߵĿ죬һ¸ö×ßµÃÂý£¬µ±Ò»¸ö×ßµ½Á´±íβ»òÕßÁ½¸öÏà¼ûµÄʱºò£¬Äܵõ½Ä³¸öÏëÒªµÄ½áµã£¬±ÈÈçÏàÓöµã£¬ÖеãµÈµÈ¡£
ÒòΪs=kc<=a+c=n£¬ÆäÖÐnÊÇÁ´±íµÄ³¤¶È£¬ËùÒÔ×ß¹ýµÄ²½ÊýСÓÚµÈÓÚn£¬Ê±¼ä¸´ÔÓ¶ÈÊÇO(n)¡£²¢ÇÒ²»ÐèÒª¶îÍâ¿Õ¼ä£¬¿Õ¼ä¸´ÔÓ¶ÈO(1)¡£´úÂëÈçÏ£º
public boolean hasCycle(ListNode head) {
if(head == null)
return false;
ListNode walker = head;
ListNode runner = head;
while(runner!=null && runner.next!=null)
{
walker = walker.next;
runner = runner.next.next;
if(walker == runner)
return true;
}
return false;
} ÕâµÀÌâÊÇÁ´±íÖбȽÏÓÐÒâ˼µÄÌâÄ¿£¬»ùÓÚÕâ¸ö·½·¨£¬ÎÒÃDz»½ö¿ÉÒÔÅжÏÁ´±íÖÐÓÐûÓÐcycle£¬»¹¿ÉÒÔÈ·¶¨cycleµÄλÖã¬ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔ¿´¿´Linked List Cycle II¡£