二叉搜索树节点最小距离
https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
import "math"
func minDiffInBST(root *TreeNode) int {
min,pre := math.MaxInt64,-1
// 内部函数避免使用全局遍历
var dfs func(*TreeNode)
dfs = func(node *TreeNode){
if node == nil {
return
}
dfs(node.Left)
if pre != -1 && node.Val - pre < min {
min = node.Val - pre
}
pre = node.Val
dfs(node.Right)
}
dfs(root)
return min
}