How do I implement the detect cycle in a linked list in Swift?

In Swift, detecting a cycle in a linked list can be achieved using Floyd's Cycle-Finding Algorithm, also known as the Tortoise and Hare algorithm. This algorithm uses two pointers that move at different speeds. If the linked list has a cycle, these two pointers will eventually meet.

class ListNode { var value: Int var next: ListNode? init(value: Int) { self.value = value } } func hasCycle(head: ListNode?) -> Bool { var slowPointer = head var fastPointer = head while let fast = fastPointer, let slow = slowPointer { if fast === slow { return true } // Cycle detected slowPointer = slow.next fastPointer = fast.next?.next } return false // No cycle }

Swift Linked List Cycle Detection Floyd's Cycle-Finding Algorithm