package
0.0.0-20241220224003-b7cf03a90b2b
Repository: https://github.com/szhou12/leetcode-go.git
Documentation: pkg.go.dev
# README
141. Linked List Cycle
Solution idea
Two Pointers
双指针同向而行, fast指针走两步,slow指针走一步
- 为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢?
- fast指针一定先进入环中,如果fast 指针和slow指针相遇的话,一定是在环中相遇,这是毋庸置疑的
- 为什么fast指针和slow指针一定会相遇呢?
- 因为fast是快速走,slow是慢速走. 相当于,在一个无限长的跑道上 (cycle),fast追击slow的问题. fast走得快,总有一天会追到slow.
- 为什么fast指针和slow指针一定会相遇呢?
- fast指针一定先进入环中,如果fast 指针和slow指针相遇的话,一定是在环中相遇,这是毋庸置疑的
Time complexity = $O(n)$