53、鏈表中環的入口結點
阿新 • • 發佈:2017-08-31
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 = newHashSet<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、鏈表中環的入口結點