slow, fast = head, head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
odd linked list
O -> O -> O -> O -> O
1 2 3 (slow)
1 2 3 (fast)
even linked list
**the fast pointer will be at second to last node
O -> O -> O -> O -> O -> O
1 2 3 (slow)
1 2 3 (fast)