Skip to content

Commit d84a1e2

Browse files
refactor 133
1 parent 026eada commit d84a1e2

File tree

2 files changed

+49
-48
lines changed

2 files changed

+49
-48
lines changed

src/main/java/com/fishercoder/solutions/_133.java

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import java.util.Queue;
99

1010
/**
11-
* Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.
11+
* 133. Clone Graph
12+
13+
Clone an undirected graph.
14+
Each node in the graph contains a label and a list of its neighbors.
1215
1316
1417
OJ's undirected graph serialization:
@@ -34,28 +37,29 @@
3437
*/
3538
public class _133 {
3639

40+
public static class Solution1 {
3741
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
38-
if (node == null) {
39-
return node;
40-
}
42+
if (node == null) {
43+
return node;
44+
}
4145

42-
Map<Integer, UndirectedGraphNode> map = new HashMap();
43-
Queue<UndirectedGraphNode> queue = new LinkedList();
44-
UndirectedGraphNode root = new UndirectedGraphNode(node.label);
45-
map.put(root.label, root);
46-
queue.offer(node);
47-
//remember to offer the original input node into the queue which contains all the information
48-
while (!queue.isEmpty()) {
49-
UndirectedGraphNode curr = queue.poll();
50-
for (UndirectedGraphNode eachNode : curr.neighbors) {
51-
if (!map.containsKey(eachNode.label)) {
52-
map.put(eachNode.label, new UndirectedGraphNode(eachNode.label));
53-
queue.offer(eachNode);
54-
}
55-
map.get(curr.label).neighbors.add(map.get(eachNode.label));
56-
}
46+
Map<Integer, UndirectedGraphNode> map = new HashMap();
47+
Queue<UndirectedGraphNode> queue = new LinkedList();
48+
UndirectedGraphNode root = new UndirectedGraphNode(node.label);
49+
map.put(root.label, root);
50+
queue.offer(node);
51+
//remember to offer the original input node into the queue which contains all the information
52+
while (!queue.isEmpty()) {
53+
UndirectedGraphNode curr = queue.poll();
54+
for (UndirectedGraphNode eachNode : curr.neighbors) {
55+
if (!map.containsKey(eachNode.label)) {
56+
map.put(eachNode.label, new UndirectedGraphNode(eachNode.label));
57+
queue.offer(eachNode);
58+
}
59+
map.get(curr.label).neighbors.add(map.get(eachNode.label));
5760
}
58-
return root;
61+
}
62+
return root;
5963
}
60-
64+
}
6165
}

src/test/java/com/fishercoder/_133Test.java

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,36 +8,33 @@
88

99
import static junit.framework.Assert.assertEquals;
1010

11-
/**
12-
* Created by fishercoder on 1/15/17.
13-
*/
1411
public class _133Test {
15-
private static _133 test;
16-
private static UndirectedGraphNode expected;
17-
private static UndirectedGraphNode actual;
12+
private static _133.Solution1 solution1;
13+
private static UndirectedGraphNode expected;
14+
private static UndirectedGraphNode actual;
1815

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

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

30-
@Test
31-
public void test1() {
32-
UndirectedGraphNode node0 = new UndirectedGraphNode(0);
33-
UndirectedGraphNode node1 = new UndirectedGraphNode(1);
34-
UndirectedGraphNode node2 = new UndirectedGraphNode(2);
35-
node0.neighbors.add(node1);
36-
node0.neighbors.add(node2);
37-
node1.neighbors.add(node2);
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);
3835

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

0 commit comments

Comments
 (0)