Given A linked list, determine if it has a cycle in it. Follow Up:can you solve it without using extra space?
Test instructions: Judging the chain list has no ring
/** * definition for singly-linked list. * class listnode { * int val; * listnode next; * listnode (int x) { * val = x; * next = null; * } * } */public class solution { public boolean hascycle (Listnode head) { ///defines two fast and slow pointers. If you have a ring, the fast pointer will meet the slow pointer. Otherwise, the quick pointer will advance to the tail ////should be my that will of the entrance examination of the topic ca if (head==null | | head.next==null | | head.next.next==null) return false; listnode Fast=head.next.next; listnode slow=head.next; while (Fast!=slow) { if ( Fast.next!=null && fast.next.next!=null) { fast=fast.next.next; slow=slow.next; }else{ //fast early to the end of return false; } } return true; }}
PS: Fast and Slow pointer. Pay attention to judging boundary conditions
Leetcode 141. Linked List Cyclejava language