File tree Expand file tree Collapse file tree 3 files changed +102
-0
lines changed
solution/0500-0599/0530.Minimum Absolute Difference in BST Expand file tree Collapse file tree 3 files changed +102
-0
lines changed Original file line number Diff line number Diff line change @@ -237,6 +237,41 @@ impl Solution {
237
237
}
238
238
```
239
239
240
+ ``` ts
241
+ /**
242
+ * Definition for a binary tree node.
243
+ * class TreeNode {
244
+ * val: number
245
+ * left: TreeNode | null
246
+ * right: TreeNode | null
247
+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
248
+ * this.val = (val===undefined ? 0 : val)
249
+ * this.left = (left===undefined ? null : left)
250
+ * this.right = (right===undefined ? null : right)
251
+ * }
252
+ * }
253
+ */
254
+ function getMinimumDifference(root : TreeNode | null ): number {
255
+ if (! root ) return 0
256
+
257
+ let prev = Number .MIN_SAFE_INTEGER
258
+ let min = Number .MAX_SAFE_INTEGER
259
+
260
+ const dfs = (node : TreeNode | null ) => {
261
+ if (! node ) return
262
+
263
+ dfs (node .left )
264
+ min = Math .min (min , node .val - prev )
265
+ prev = node .val
266
+ dfs (node .right )
267
+ }
268
+
269
+ dfs (root )
270
+
271
+ return min
272
+ }
273
+ ```
274
+
240
275
<!-- tabs:end -->
241
276
242
277
<!-- end -->
Original file line number Diff line number Diff line change @@ -228,6 +228,41 @@ impl Solution {
228
228
}
229
229
```
230
230
231
+ ``` ts
232
+ /**
233
+ * Definition for a binary tree node.
234
+ * class TreeNode {
235
+ * val: number
236
+ * left: TreeNode | null
237
+ * right: TreeNode | null
238
+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
239
+ * this.val = (val===undefined ? 0 : val)
240
+ * this.left = (left===undefined ? null : left)
241
+ * this.right = (right===undefined ? null : right)
242
+ * }
243
+ * }
244
+ */
245
+ function getMinimumDifference(root : TreeNode | null ): number {
246
+ if (! root ) return 0
247
+
248
+ let prev = Number .MIN_SAFE_INTEGER
249
+ let min = Number .MAX_SAFE_INTEGER
250
+
251
+ const dfs = (node : TreeNode | null ) => {
252
+ if (! node ) return
253
+
254
+ dfs (node .left )
255
+ min = Math .min (min , node .val - prev )
256
+ prev = node .val
257
+ dfs (node .right )
258
+ }
259
+
260
+ dfs (root )
261
+
262
+ return min
263
+ }
264
+ ```
265
+
231
266
<!-- tabs:end -->
232
267
233
268
<!-- end -->
Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for a binary tree node.
3
+ * class TreeNode {
4
+ * val: number
5
+ * left: TreeNode | null
6
+ * right: TreeNode | null
7
+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8
+ * this.val = (val===undefined ? 0 : val)
9
+ * this.left = (left===undefined ? null : left)
10
+ * this.right = (right===undefined ? null : right)
11
+ * }
12
+ * }
13
+ */
14
+ function getMinimumDifference ( root : TreeNode | null ) : number {
15
+ if ( ! root ) return 0
16
+
17
+ let prev = Number . MIN_SAFE_INTEGER
18
+ let min = Number . MAX_SAFE_INTEGER
19
+
20
+ const dfs = ( node : TreeNode | null ) => {
21
+ if ( ! node ) return
22
+
23
+ dfs ( node . left )
24
+ min = Math . min ( min , node . val - prev )
25
+ prev = node . val
26
+ dfs ( node . right )
27
+ }
28
+
29
+ dfs ( root )
30
+
31
+ return min
32
+ }
You can’t perform that action at this time.
0 commit comments