[题目地址](https://leetcode.cn/problems/linked-list-cycle-ii) + 哈希表 ```golang /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func detectCycle(head *ListNode) *ListNode { m := make(map[*ListNode]any,0) for head != nil{ if _,ok := m[head];ok{ return head } m[head] = nil head = head.Next } return nil } ``` + 快慢指针 ```golang /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func detectCycle(head *ListNode) *ListNode { slow, fast := head, head for fast != nil && fast.Next != nil { slow = slow.Next fast = fast.Next.Next if slow == fast{ tmpHead := head for tmpHead != slow{ tmpHead = tmpHead.Next slow = slow.Next } return tmpHead } } return nil } ```