// 判断是否为二叉搜索树
func checkTreeTranslateII(node *TreeNode) bool {
if node == nil {
return true
}
var in func(n *TreeNode) bool
var pre *TreeNode
in = func(n *TreeNode) bool {
if n == nil {
return true
}
// 中序遍历
l := in(n.Left)
if pre != nil && pre.Val > n.Val {
return false
}
pre = n
r := in(n.Right)
return l && r
}
return in(node)
}
二叉搜索树是有序的,所以此题可以先将树转化为数组,再判断是否有序
可以在中序遍历时记录前一节点,pre,便于比较
二叉搜索树的节点差值最小值
// 二叉搜索树节点差的绝对值中的最小值
func minSubOfTree(node *TreeNode) int {
var res int
var in func(n *TreeNod