Skip to content

Commit aa18a5a

Browse files
refactor 133
1 parent 9fe07fc commit aa18a5a

File tree

2 files changed

+54
-34
lines changed

2 files changed

+54
-34
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,56 @@
11
package com.fishercoder.solutions;
22

3-
import com.fishercoder.common.classes.UndirectedGraphNode;
4-
3+
import java.util.ArrayList;
54
import java.util.HashMap;
65
import java.util.LinkedList;
6+
import java.util.List;
77
import java.util.Map;
88
import java.util.Queue;
99

1010
public class _133 {
1111

1212
public static class Solution1 {
13-
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
13+
public Node cloneGraph(Node node) {
1414
if (node == null) {
1515
return node;
1616
}
1717

18-
Map<Integer, UndirectedGraphNode> map = new HashMap();
19-
Queue<UndirectedGraphNode> queue = new LinkedList();
20-
UndirectedGraphNode root = new UndirectedGraphNode(node.val);
18+
Map<Integer, Node> map = new HashMap();
19+
Queue<Node> queue = new LinkedList();
20+
Node root = new Node(node.val);
2121
map.put(root.val, root);
22-
queue.offer(node);
2322
//remember to offer the original input node into the queue which contains all the information
23+
queue.offer(node);
2424
while (!queue.isEmpty()) {
25-
UndirectedGraphNode curr = queue.poll();
26-
for (UndirectedGraphNode eachNode : curr.neighbors) {
25+
Node curr = queue.poll();
26+
for (Node eachNode : curr.neighbors) {
2727
if (!map.containsKey(eachNode.val)) {
28-
map.put(eachNode.val, new UndirectedGraphNode(eachNode.val));
28+
map.put(eachNode.val, new Node(eachNode.val));
2929
queue.offer(eachNode);
3030
}
3131
map.get(curr.val).neighbors.add(map.get(eachNode.val));
3232
}
3333
}
3434
return root;
3535
}
36+
37+
class Node {
38+
public int val;
39+
public List<Node> neighbors;
40+
41+
public Node() {
42+
this.neighbors = new ArrayList<>();
43+
}
44+
45+
public Node(int val) {
46+
this.val = val;
47+
this.neighbors = new ArrayList<>();
48+
}
49+
50+
public Node(int val, List<Node> neighbors) {
51+
this.val = val;
52+
this.neighbors = neighbors;
53+
}
54+
}
3655
}
3756
}
+25-24
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.fishercoder;
22

3+
import com.fishercoder.common.classes.Node;
34
import com.fishercoder.common.classes.UndirectedGraphNode;
45
import com.fishercoder.solutions._133;
56
import org.junit.Before;
@@ -9,32 +10,32 @@
910
import static junit.framework.Assert.assertEquals;
1011

1112
public class _133Test {
12-
private static _133.Solution1 solution1;
13-
private static UndirectedGraphNode expected;
14-
private static UndirectedGraphNode actual;
13+
private static _133.Solution1 solution1;
14+
private static Node expected;
15+
private static Node actual;
1516

16-
@BeforeClass
17-
public static void setup() {
18-
solution1 = new _133.Solution1();
19-
}
17+
@BeforeClass
18+
public static void setup() {
19+
solution1 = new _133.Solution1();
20+
}
2021

21-
@Before
22-
public void setupForEachTest() {
23-
expected = null;
24-
actual = null;
25-
}
22+
@Before
23+
public void setupForEachTest() {
24+
expected = null;
25+
actual = null;
26+
}
2627

27-
@Test
28-
public void test1() {
29-
UndirectedGraphNode node0 = new UndirectedGraphNode(0);
30-
UndirectedGraphNode node1 = new UndirectedGraphNode(1);
31-
UndirectedGraphNode node2 = new UndirectedGraphNode(2);
32-
node0.neighbors.add(node1);
33-
node0.neighbors.add(node2);
34-
node1.neighbors.add(node2);
28+
@Test
29+
public void test1() {
30+
Node node0 = new Node(0);
31+
Node node1 = new Node(1);
32+
Node node2 = new Node(2);
33+
node0.children.add(node1);
34+
node0.children.add(node2);
35+
node1.children.add(node2);
3536

36-
expected = node0;
37-
actual = solution1.cloneGraph(expected);
38-
assertEquals(expected, actual);
39-
}
37+
expected = node0;
38+
actual = solution1.cloneGraph(expected);
39+
assertEquals(expected, actual);
40+
}
4041
}

0 commit comments

Comments
 (0)