We'll use BFS (Breadth-First Search) to clone a graph. We start by creating a copy of the first node and use a queue to process all nodes in a breadth-first manner.
The HashMap will help us keep track of which original nodes have already been cloned, and what their corresponding cloned nodes are.