leetcode_142_Linked List Cycle II

2015-07-20 17:20:30 · 作者: · 浏览: 7

描述:

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; }
   
  

结果: