File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /*
2+ // Definition for a Node.
3+ class Node {
4+ public int val;
5+ public List<Node> neighbors;
6+ public Node() {
7+ val = 0;
8+ neighbors = new ArrayList<Node>();
9+ }
10+ public Node(int _val) {
11+ val = _val;
12+ neighbors = new ArrayList<Node>();
13+ }
14+ public Node(int _val, ArrayList<Node> _neighbors) {
15+ val = _val;
16+ neighbors = _neighbors;
17+ }
18+ }
19+ */
20+
21+ class Solution {
22+ public Node cloneGraph (Node node ) {
23+ if (node == null ) return node ;
24+ return deepCopy (node );
25+ }
26+
27+ public Node deepCopy (Node node ) {
28+ Deque <Node > deque = new ArrayDeque <>();
29+ Node root = new Node (node .val , new ArrayList <>());
30+ Map <Integer , Node > visit = new HashMap <>();
31+
32+ visit .put (1 , root );
33+ deque .add (node );
34+
35+ while (!deque .isEmpty ()) {
36+ Node cur = deque .poll ();
37+ for (Node next : cur .neighbors ) {
38+ if (!visit .containsKey (next .val )){
39+ visit .put (next .val , new Node (next .val , new ArrayList <>()));
40+ deque .add (next );
41+ }
42+ visit .get (cur .val ).neighbors .add (visit .get (next .val ));
43+ }
44+ }
45+ return root ;
46+ }
47+ }
48+
49+
You can’t perform that action at this time.
0 commit comments