Create Copy List with Random Pointer.cpp

Basic Idea: two parses and node map
In first parse, construct new list and create mapping between source and target list nodes.
In second parse, assign random pointers.
Note that it is possible that random pointer points to NULL, so we provide a mapping for that case: nodeMap[NULL] = NULL;