Skip to content

Commit 91aa37d

Browse files
committed
feat: add TS solution to lc problem: No.530 (#2820)
1 parent 7dff3e5 commit 91aa37d

File tree

3 files changed

+102
-0
lines changed

3 files changed

+102
-0
lines changed

solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,41 @@ impl Solution {
237237
}
238238
```
239239

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+
240275
<!-- tabs:end -->
241276

242277
<!-- end -->

solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,41 @@ impl Solution {
228228
}
229229
```
230230

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+
231266
<!-- tabs:end -->
232267

233268
<!-- end -->
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
}

0 commit comments

Comments
 (0)