如果链表中含有环,如何计算这个环的起点

func detectCycle(head *ListNode) *ListNode {
if head==nil||head.Next==nil{
return nil
}
p1,p2:=head,head
for p2!=nil{
p1=p1.Next
p2=p2.Next
if p2!=nil{
p2=p2.Next
}
if p1==p2{
p1=head
for p1!=p2{
p1=p1.Next
p2=p2.Next
}
return p1
}
}
return nil
}

浙公网安备 33010602011771号