53、链表中环的入口结点

一、题目

一个链表中包含环,请找出该链表的环的入口结点。

二、解法

 1 /*
 2  public class ListNode {
 3     int val;
 4     ListNode next = null;
 5 
 6     ListNode(int val) {
 7         this.val = val;
 8     }
 9 }
10 */
11 import java.util.HashSet;
12 public class Solution {
13 public ListNode EntryNodeOfLoop(ListNode pHead){
14         HashSet<ListNode> hs = new HashSet<ListNode>();
15         while(pHead!=null){
16             if(!hs.add(pHead))
17                 return pHead;
18             pHead = pHead.next;
19         }
20         return null;
21     }
22    /* public ListNode EntryNodeOfLoop(ListNode pHead)
23       {
24           if(pHead == null || pHead.next == null)
25               return null;
26           ListNode p1 = pHead;
27           ListNode p2 = pHead;
28           while(p2 != null && p2.next != null){
29               p1 = p1.next;
30               p2 = p2.next.next;
31               if(p1 == p2){
32                   p2 = pHead;
33                   while(p1 != p2){
34                       p1 = p1.next;
35                       p2 = p2.next;
36                   }
37                   if(p1 == p2)
38                       return p1;
39               }
40           }
41             return null;
42       }*/
43 }

 

posted @ 2017-08-31 20:01  fankongkong  阅读(189)  评论(0编辑  收藏  举报