Skip to content

Commit 76e8300

Browse files
refactor 530
1 parent 6ef3b24 commit 76e8300

File tree

2 files changed

+30
-26
lines changed

2 files changed

+30
-26
lines changed

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

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import java.util.TreeSet;
77

88
/**
9+
* 530. Minimum Absolute Difference in BST
10+
*
911
* Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.
1012
1113
Example:
@@ -27,29 +29,31 @@
2729
*/
2830
public class _530 {
2931

30-
public int getMinimumDifference(TreeNode root) {
31-
TreeSet<Integer> treeset = new TreeSet<>();
32-
treeset.add(root.val);
33-
dfs(root, treeset);
34-
int diff = Integer.MAX_VALUE;
35-
Iterator<Integer> iterator = treeset.iterator();
36-
int prev = iterator.next();
37-
while (iterator.hasNext()) {
38-
int current = iterator.next();
39-
diff = Math.min(diff, Math.abs(current - prev));
40-
prev = current;
32+
public static class Solution1 {
33+
public int getMinimumDifference(TreeNode root) {
34+
TreeSet<Integer> treeset = new TreeSet<>();
35+
treeset.add(root.val);
36+
dfs(root, treeset);
37+
int diff = Integer.MAX_VALUE;
38+
Iterator<Integer> iterator = treeset.iterator();
39+
int prev = iterator.next();
40+
while (iterator.hasNext()) {
41+
int current = iterator.next();
42+
diff = Math.min(diff, Math.abs(current - prev));
43+
prev = current;
44+
}
45+
return diff;
4146
}
42-
return diff;
43-
}
4447

45-
private void dfs(TreeNode root, TreeSet<Integer> treeset) {
46-
if (root.left != null) {
47-
treeset.add(root.left.val);
48-
dfs(root.left, treeset);
49-
}
50-
if (root.right != null) {
51-
treeset.add(root.right.val);
52-
dfs(root.right, treeset);
48+
private void dfs(TreeNode root, TreeSet<Integer> treeset) {
49+
if (root.left != null) {
50+
treeset.add(root.left.val);
51+
dfs(root.left, treeset);
52+
}
53+
if (root.right != null) {
54+
treeset.add(root.right.val);
55+
dfs(root.right, treeset);
56+
}
5357
}
5458
}
5559
}

src/test/java/com/fishercoder/_530Test.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
import static junit.framework.Assert.assertEquals;
1010

1111
public class _530Test {
12-
private static _530 test;
12+
private static _530.Solution1 solution1;
1313
private static int expected;
1414
private static int actual;
1515
private static TreeNode root;
1616

1717
@BeforeClass
1818
public static void setup() {
19-
test = new _530();
19+
solution1 = new _530.Solution1();
2020
}
2121

2222
@Before
@@ -31,7 +31,7 @@ public void test1() {
3131
root.right = new TreeNode(3);
3232
root.right.left = new TreeNode(2);
3333
expected = 1;
34-
actual = test.getMinimumDifference(root);
34+
actual = solution1.getMinimumDifference(root);
3535
assertEquals(expected, actual);
3636
}
3737

@@ -41,7 +41,7 @@ public void test2() {
4141
root.right = new TreeNode(5);
4242
root.right.left = new TreeNode(3);
4343
expected = 2;
44-
actual = test.getMinimumDifference(root);
44+
actual = solution1.getMinimumDifference(root);
4545
assertEquals(expected, actual);
4646
}
4747

@@ -54,7 +54,7 @@ public void test3() {
5454
root.left.right = new TreeNode(445);
5555
root.right.right = new TreeNode(699);
5656
expected = 47;
57-
actual = test.getMinimumDifference(root);
57+
actual = solution1.getMinimumDifference(root);
5858
assertEquals(expected, actual);
5959
}
6060
}

0 commit comments

Comments
 (0)