Swift: Slow and Fast Pointers
\nfunc middleNode(_ head: ListNode?) -> ListNode? {\n\tvar slow = head\n\tvar fast = head\n\n\twhile fast?.next != nil {\n\t\tfast = fast?.next?.next\n\t\tslow 
```\nfunc middleNode(_ head: ListNode?) -> ListNode? {\n\tvar slow = head\n\tvar fast = head\n\n\twhile fast?.next != nil {\n\t\tfast = fast?.next?.next\n\t\tslow = slow?.next\n\t}\n\n\treturn slow\n}\n```
['Swift']