Your question is Middle of Linked List. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
A Cloudera data-processing component stores an ordered stream as a singly linked list. Given the list head, return the value of its middle node using a single traversal.
If the list contains an even number of nodes, return the second of the two middle nodes. The list is represented using nested dictionaries: each node has an integer value and a next field containing another node or None.
Implement find_middle(head), where head is either None or a node represented as {"value": integer, "next": node_or_none}. Return the integer value stored in the middle node. You may use only constant auxiliary space, excluding the input list.
def find_middle(head):