赞
踩
快指针走两步,慢指针走一步,如果有环,最终会在环中相遇。
快指针回到表头,慢指针停在相遇点,之后都走一步,最终会在环入口相遇。
leetcode141
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while(fast != null && fast.next != null){
slow = slow.next;
fast = fast.next.next;
if(slow == fast)
return true;
}
return false;
}
}
public class Solution { public ListNode detectCycle(ListNode head) { ListNode slow = head; ListNode fast = head; while(true){ if(fast == null || fast.next == null){ return null; } fast = fast.next.next; slow = slow.next; if(slow == fast){ break; } } fast = head; while(fast != slow){ fast = fast.next; slow = slow.next; } return fast; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。