这道题让判断链表中是否存在cycle
思路采用walker_runner法
定义walker和runner并且同时指向head。walker一次走一步,runner一次走两步,
runner为空或走到末尾则跳出循环。如果walker和runner相遇,则存在cycle。
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;
}