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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy