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

 

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
}

  

 

posted @ 2022-03-18 21:16  ☞@_@  阅读(29)  评论(0编辑  收藏  举报