Easy
Given the root
of a Binary Search Tree (BST), return the minimum absolute difference between the values of any two different nodes in the tree.
Example 1:
Input: root = [4,2,6,1,3]
Output: 1
Example 2:
Input: root = [1,0,48,null,null,12,49]
Output: 1
Constraints:
[2, 104]
.0 <= Node.val <= 105
Note: This question is the same as 783: https://leetcode.com/problems/minimum-distance-between-bst-nodes/
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func getMinimumDifference(root *TreeNode) int {
ans := 1<<31 - 1
prev := 1<<31 - 1
var dfs func(*TreeNode)
dfs = func(root *TreeNode) {
if root == nil {
return
}
dfs(root.Left)
if prev != 1<<31-1 {
diff := abs(root.Val - prev)
if diff < ans {
ans = diff
}
}
prev = root.Val
dfs(root.Right)
}
dfs(root)
return ans
}
func abs(x int) int {
if x < 0 {
return -x
}
return x
}