文字讲解:代码随想录
视频讲解:把环形链表讲清楚! 如何判断环形链表?如何找到环形链表的入口? LeetCode:142.环形链表II_哔哩哔哩_bilibili
力扣地址:. - 力扣(LeetCode)
记录:知道原理就很简单了 看看视频就可以写出来
func detectCycle(head *ListNode) *ListNode {
//依旧是双指针思路 先找到链表是否有环
//然后用第三个指针开始走
if head == nil {
return nil
}
fast := head
slow := head
pre := head
for fast != nil && fast.Next != nil{
fast = fast.Next.Next
slow = slow.Next
if fast == slow {
for slow != pre {
slow = slow.Next
pre = pre.Next
}
return pre
}
}
return nil
}