lc-go/solutions/1/q142/solution.go
2026-01-25 11:56:12 +09:00

32 lines
394 B
Go

package q142
type ListNode struct {
Val int
Next *ListNode
}
func detectCycle(head *ListNode) *ListNode {
p1, p2 := head, head
for p1 != nil && p2 != nil {
p1 = p1.Next
p2 = p2.Next
if p2 != nil {
p2 = p2.Next
}
if p1 == p2 {
break
}
}
if p2 == nil {
return nil
}
p1 = head
for p1 != p2 {
p1 = p1.Next
p2 = p2.Next.Next
}
return p1
}
var _ = detectCycle