Middle of the Linked List
Return the middle node of a singly linked list. For an even number of nodes, return the second of the two middle nodes. Slow/fast pointers again: when fast reaches the end, slow is at the middle.
middleOfList(list(1, 2, 3, 4, 5)).val; // 3
middleOfList(list(1, 2, 3, 4)).val; // 3 (second middle)