题目描述:
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
题目分析:

从上图中可以看出,环的入口结点和其他结点的区别:环的入口结点是有两个指针指向的,其他结点除了头结点都是只有一个指针指向的,
使用断链法,在当前结点访问完毕后,断掉指向当前结点的指针。因此,最后一个被访问的结点一定是入口结点。

代码实现:
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 public class circle { 12 public ListNode EntryNodeOfLoop(ListNode pHead) 13 { 14 ListNode newHead=pHead; 15 ListNode preNode=newHead; 16 ListNode walkNode=newHead.next; 17 if (preNode == null || preNode.next == null){ 18 return null; 19 } 20 while(walkNode!=null){ 21 preNode.next=null; 22 preNode=walkNode; 23 walkNode=walkNode.next; 24 } 25 System.out.println(pHead.next); 26 System.out.println(preNode); 27 return preNode; 28 } 29 }
