Clone Graph

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#.

  1. First node is labeled as

    0

    . Connect node

    0

    to both nodes

    1

    and

    2

    .

  2. Second node is labeled as

    1

    . Connect node

    1

    to node

    2

    .

  3. 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

Last updated

Was this helpful?