LeetCode linked-list-cycle

2020-12-29

https://leetcode-cn.com/problems/linked-list-cycle/

*ListNode 是可比较的类型, 可用在 map 的键, 如果链表中重复出现该指针, 则一定存在环. 注意不要用 Val 作为键, 链表中可能存在重复的 Val.

Golang

func hasCycle(head *ListNode) bool {
	hash := make(map[*ListNode]int, 0) // [*ListNode] => list index

	tail := head
	for i := 0; tail != nil; i++ {
		if _, ok := hash[tail]; ok {
			return true
		}
		hash[tail] = i
		tail = tail.Next
	}
	return false
}