diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md index 43fd8fa1c8d1f..151087a8c52d3 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README.md @@ -253,6 +253,43 @@ impl Solution { } ``` +#### TypeScript + +```ts +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ +function getMinimumDifference(root: TreeNode | null): number { + if (!root) return 0; + + let prev = Number.MIN_SAFE_INTEGER; + let min = Number.MAX_SAFE_INTEGER; + + const dfs = (node: TreeNode | null) => { + if (!node) return; + + dfs(node.left); + min = Math.min(min, node.val - prev); + prev = node.val; + dfs(node.right); + }; + + dfs(root); + + return min; +} +``` + diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md index 4fa626743de1d..f232f09d055b7 100644 --- a/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/README_EN.md @@ -246,6 +246,43 @@ impl Solution { } ``` +#### TypeScript + +```ts +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ +function getMinimumDifference(root: TreeNode | null): number { + if (!root) return 0; + + let prev = Number.MIN_SAFE_INTEGER; + let min = Number.MAX_SAFE_INTEGER; + + const dfs = (node: TreeNode | null) => { + if (!node) return; + + dfs(node.left); + min = Math.min(min, node.val - prev); + prev = node.val; + dfs(node.right); + }; + + dfs(root); + + return min; +} +``` + diff --git a/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts b/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts new file mode 100644 index 0000000000000..61275353165c6 --- /dev/null +++ b/solution/0500-0599/0530.Minimum Absolute Difference in BST/Solution.ts @@ -0,0 +1,32 @@ +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ +function getMinimumDifference(root: TreeNode | null): number { + if (!root) return 0; + + let prev = Number.MIN_SAFE_INTEGER; + let min = Number.MAX_SAFE_INTEGER; + + const dfs = (node: TreeNode | null) => { + if (!node) return; + + dfs(node.left); + min = Math.min(min, node.val - prev); + prev = node.val; + dfs(node.right); + }; + + dfs(root); + + return min; +}