1. 程式人生 > >53、鏈表中環的入口結點

53、鏈表中環的入口結點

class head || spa == hashset return amp !=

一、題目

一個鏈表中包含環,請找出該鏈表的環的入口結點。

二、解法

 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 }

53、鏈表中環的入口結點