File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed
Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ import java .util .*;
2+
3+ class Node {
4+ public int val ;
5+ public List <Node > neighbors ;
6+
7+ public Node () {
8+ val = 0 ;
9+ neighbors = new ArrayList <Node >();
10+ }
11+
12+ public Node (int _val ) {
13+ val = _val ;
14+ neighbors = new ArrayList <Node >();
15+ }
16+
17+ public Node (int _val , ArrayList <Node > _neighbors ) {
18+ val = _val ;
19+ neighbors = _neighbors ;
20+ }
21+ }
22+
23+ public class CloneGraph {
24+ private Map <Node , Node > visited = new HashMap <>();
25+
26+ public Node cloneGraph (Node node ) {
27+ if (node == null ) return null ;
28+ if (visited .containsKey (node )) return visited .get (node );
29+
30+ Node clone = new Node (node .val );
31+ visited .put (node , clone );
32+
33+ for (Node neighbor : node .neighbors ) {
34+ clone .neighbors .add (cloneGraph (neighbor ));
35+ }
36+ return clone ;
37+ }
38+
39+ public static void main (String [] args ) {
40+ // Example: Creating a simple graph and cloning it
41+ Node node1 = new Node (1 );
42+ Node node2 = new Node (2 );
43+ node1 .neighbors .add (node2 );
44+ node2 .neighbors .add (node1 );
45+
46+ CloneGraph cg = new CloneGraph ();
47+ Node cloned = cg .cloneGraph (node1 );
48+ System .out .println ("Cloned graph node value: " + cloned .val );
49+ }
50+ }
You can’t perform that action at this time.
0 commit comments