A linked list of length `n` is given such that each node contains an additional random pointer, which could point to any node in the list, or `null`. Construct a deep copy of the list. The deep copy should consist of exactly `n` brand new nodes, where each new node has its value set to the value of its corresponding original node.
Hash Map Mapping
To deep copy a linked list where nodes have pointers to other nodes that might not have been created yet, we use a Hash Map. In the first pass, we create all the new copy nodes and store the mapping from `original_node` to `copy_node`. In the second pass, we assign the `next` and `random` pointers of each copy node by looking up the corresponding pointers of the original nodes in our map.