Clone Graph

Try to solve the Clone Graph problem.

Statement

You are given a reference to a single node in an undirected, connected graph. Your task is to create a deep copy of the graph starting from this node. A deep copy means creating a new instance of every node in the graph with the same data and edges as the original graph, such that changes in the copied graph do not affect the original graph.

From the programming perspective, the graph is represented as an adjacency list to understand node relationships. Each node in the adjacency list corresponds to a node in the graph, and the list of neighbors describes that node’s connections. For example, for [[2,3],[1,3],[1,2]][[2, 3], [1, 3], [1, 2]], there are three nodes in the graph:

1st1^{st} node (data = 11): Neighbors are 2nd2^{nd} node (data = 22) and 3rd3^{rd} node (data = 33).

2nd2^{nd} node (data = 22): Neighbors are 1st1^{st} node (data = 11) and 3rd3^{rd} node (data = 33).

3rd3^{rd} node (data = 33): Neighbors are 1st1^{st} node (data = 11) and 2nd2^{nd} node (data = 22).

Constraints:

  • 00 \leq Number of nodes 100\leq 100

  • 11\leq Node.data 100\leq 100

  • Node.data is unique for each node.

  • The graph is undirected, i.e., there are no self-loops or repeated edges.

  • The graph is connected, i.e., any node can be visited from a given node.

Examples

Create a free account to view this lesson.

Continue your learning journey with a 14-day free trial.

By signing up, you agree to Educative's Terms of Service and Privacy Policy