就是快慢指针的逻辑,直接附代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func hasCycle(head *ListNode) bool {
if head == nil || head.Next == nil{
return false
}
p := head
q := head.Next
for p != q{
if q.Next == nil || q.Next.Next==nil{
return false
}
p = p.Next
q= q.Next.Next
}
return true
}