这里首先要理解,什么叫做二叉搜索树,也就是左子树、根节点、右子树的值依次增大,中序遍历二叉搜索树的时候,序列是递增的。
所以这里可以利用这一性质来解题。
在中序遍历的时候来做判断,并把最小值保存即可。
注意,这里的判断,只能用prev !== null,而不能用 !prev
因为在prev = 0的时候 !prev 会为真
var getMinimumDifference = function (root) {
let prev = null
let diff = Infinity
var inorder = function (node) {
if(!node) return
inorder(node.left)
if(prev !== null){
diff = Math.min(diff, Math.abs(prev - node.val))
}
prev = node.val
inorder(node.right)
}
inorder(root)
return diff
};