PTC's Windchill configuration structures may expose only a reference to a node within a singly linked sequence. Implement recursive insertion without receiving or using a separate head pointer.
You are given a non-empty Node reference, an integer value, and a zero-based index relative to that node. Insert the new value at that position and return the same starting node reference. Index 0 means insert before the referenced node.
Because the predecessor is unavailable, inserting before the referenced node must preserve the referenced object's identity. Use the copy-and-shift technique: replace its value with the new value, then create a node containing the old value immediately after it.
Assume each node has integer field value and nullable next field. The function signature is insert_recursive_no_head(node, value, index). The input list is represented by the node reference and the output is the linked sequence reachable from that same reference. The index is guaranteed to be valid, from 0 through the current sequence length.
def insert_recursive_no_head(node, value, index):