[Go] [Fun] One-Liner to find the Linked List middle
This could be not that readable, but fun: \n\n\n/**\n * Definition for singly-linked list.\n * type ListNode struct {\n *     Val int\n *     Next *ListNode\n *
This could be not that readable, but fun: \n\n```\n/**\n * Definition for singly-linked list.\n * type ListNode struct {\n *     Val int\n *     Next *ListNode\n * }\n */\n\n// Solution:\n// Define a "fast" pointer which will iterate 2 steps at a time over the linked list.\n// On every "fast" iteration move original "head" pointer 1 step right.\n// When "fast" reaches the end of the linked list, "head" will be the middle.\n//\n// Time: O(n)\n// Space: O(1)\nfunc middleNode(head *ListNode) *ListNode {\n    for fast := head; fast != nil && fast.Next != nil; fast, head = fast.Next.Next, head.Next {}\n    return head\n}\n```\n\nMore readable though to help deciphering ^^ example: \n```\nfunc middleNode(head *ListNode) *ListNode {\n    for fast := head; fast != nil && fast.Next != nil; fast = fast.Next.Next {\n\t    head = head.Next\n\t}\n    return head\n}\n```
['Linked List', 'Go']