题解 | #链表中环的入口结点#
链表中环的入口结点
http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
/*
public class ListNode
{
public int val;
public ListNode next;
public ListNode (int x)
{
val = x;
}
}*/
class Solution
{
public ListNode EntryNodeOfLoop(ListNode pHead)
{
// write code here
if(pHead == null){
return null;
}
// ListNode newHead = new ListNode(0);
// newHead.next = pHead;
ListNode iterSlow = pHead;
ListNode iterFast = pHead;
while(iterFast!=null){
iterSlow = iterSlow.next;
iterFast = iterFast.next;
if(iterFast!=null){
iterFast = iterFast.next;
}
if(iterSlow == iterFast){
break;
}
}
if(iterFast == null){
return null;
}else{
iterFast = pHead;
while(iterSlow != iterFast){
iterSlow = iterSlow.next;
iterFast = iterFast.next;
}
return iterSlow;
}
}
}
public class ListNode
{
public int val;
public ListNode next;
public ListNode (int x)
{
val = x;
}
}*/
class Solution
{
public ListNode EntryNodeOfLoop(ListNode pHead)
{
// write code here
if(pHead == null){
return null;
}
// ListNode newHead = new ListNode(0);
// newHead.next = pHead;
ListNode iterSlow = pHead;
ListNode iterFast = pHead;
while(iterFast!=null){
iterSlow = iterSlow.next;
iterFast = iterFast.next;
if(iterFast!=null){
iterFast = iterFast.next;
}
if(iterSlow == iterFast){
break;
}
}
if(iterFast == null){
return null;
}else{
iterFast = pHead;
while(iterSlow != iterFast){
iterSlow = iterSlow.next;
iterFast = iterFast.next;
}
return iterSlow;
}
}
}