##题目描述
一个链表中包含环,请找出该链表的环的入口结点。
##解题思路
1,使用快慢指针找到碰撞点
2,两个同速指针分别从头节点和碰撞点出发,相遇的地方就是入口节点
##代码实现

/**
 * 
 */
package 链表;

/**
 * <p>
 * Title:EntryNodeOfLoop
 * </p>
 * <p>
 * Description:
 * </p>
 * 
 * @author 田茂林
 * @data 2017年8月23日 上午9:25:08
 */
public class EntryNodeOfLoop {
	public ListNode NodeEntryNodeOfLoop(ListNode pHead) {
		if (pHead == null) {
			return null;
		}
		// 先找到碰撞点,两个指针出发,一快一慢
		ListNode fast = pHead;
		ListNode slow = pHead;
		if (fast == null || fast.next == null) {
			return null;     //因为下边的循环要用到fast.next,所以不能为null
		}
		while (fast != null) {   //因为函数体里没有用到fast.next做判断,只有赋值操作,所以不需要对其做非空判断。
			fast = fast.next.next;
			slow = slow.next;//slow的速度比fast慢,所以不用判断slow是否非空
			if (fast == slow)
				break;
		}
		// 速度一样的两个指针一个从pHead出发,一个从碰撞点出发,相遇的地方就是入口节点
		slow = pHead;
		while (slow != fast) {
			slow = slow.next;
			fast = fast.next;
		}
		return slow;

	}
}