描述:
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.
Follow up:
Can you solve it without using extra space?
思路:
从头开始遍历链表并将结点的引用存储在HashSet中,出现重复的地方就是出现环的地方。
代码:
public ListNode detectCycle(ListNode head) {
if(head==null)
return null;
HashSet
set=new HashSet
(); ListNode pListNode=head; while(pListNode!=null) { if(set.contains(pListNode)) return pListNode; else { set.add(pListNode); pListNode=pListNode.next; } } return null; }
结果:
