56:链表中环的入口结点

/**
 * 面试题56:链表中环的入口结点
 * 一个链表中包含环,请找出该链表的环的入口结点。
 */
public class _56_hoop_start {
	public static void main(String[] args) {
		
	}
}
class Solution56 {
    public ListNode56 EntryNodeOfLoop(ListNode56 pHead){
    	if(pHead==null||pHead.next==null){
    		return null;
    	}
    	ListNode56 p1=pHead;
    	ListNode56 p2=pHead;
    	while (p2.next!=null) {
    		p1=p1.next;
    		p2=p2.next.next;
    		if(p1==p2){
    			p1=pHead;
    			while (p1!=p2) {
    				p1=p1.next;
    				p2=p2.next;
				}
    			return p1;
    		}
		}
		return null;
    }
}
class ListNode56 {
    int val;
	ListNode56 next = null;
	ListNode56(int val) {
        this.val = val;
    }
}

阿莫斯论Amos

posted @ 2017-03-15 13:10  Andrew.Zhou  阅读(140)  评论(0编辑  收藏  举报