Linked List Cycle
Given a linked list, determine if it has a cycle in it.
To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the linked list.
时间复杂度:O(n)
空间复杂度:O(1)
temp1一次走一步,temp2一次走两步,如果链表存在环,两指针一定会相遇
public boolean hasCycle(ListNode head) {
ListNode temp1 = null;
ListNode temp2 = null;
if(head != null){
temp1 = head;
temp2 = head;
}else{
return false;
}
while(temp1 != null && temp2 != null){
temp1 = temp1.next;
temp2 = temp2.next;
if(temp2 != null){
temp2 = temp2.next;
}else{
return false;
}
if(temp1 == temp2){
return true;
}
}
return false;
}