1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| public class Solution { public boolean hasCycle(ListNode head) { if(head==null) return false; Set<ListNode> si=new HashSet<>(); while(head.next!=null){ if(si.contains(head)) return true; else si.add(head); head=head.next; } return false; } public boolean hasCycle(ListNode head) { if(head==null) return false; StringBuilder sb=new StringBuilder(); sb.append(System.identityHashCode(head)); sb.append(","); boolean flag=false; while(head.next!=null){ int addr=System.identityHashCode(head.next); if(sb.indexOf(addr+"")>-1){ flag=true; break; } sb.append(addr).append(","); head=head.next; } return flag; }
public boolean hasCycle(ListNode head) { if(head == null || head.next ==null){ return false; } 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; } }
|