Clone an undirected graph. Each node in the graph contains alabeland a list of itsneighbors.
OJ's undirected graph serialization:
Nodes are labeled uniquely.
We use
#
as a separator for each node, and
,
as a separator for node label and each neighbor of the node.
As an example, consider the serialized graph{0,1,2#1,2#2,2}.
The graph has a total of three nodes, and therefore contains three parts as separated by#.
First node is labeled as
0
. Connect node
0
to both nodes
1
and
2
.
Second node is labeled as
1
. Connect node
1
to node
2
.
Third node is labeled as
2
. Connect node
2
to node
2
(itself), thus forming a self-cycle.
Visually, the graph looks like the following:
Method 1: 2 * O(nlogn) and O(n) space for building the dict of visited/refDict
Method 2: O(nlogn) for BFS and O(n) to store the visited. The second traversal is not needed