给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。

示例 :

输入:

   1
    \
     3
    /
   2

输出:
1

解释:
最小绝对差为1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。

注意: 树中至少有2个节点。


思路:

这道题与二叉搜索树节点最小距离解法完全一样。

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var getMinimumDifference = function(root) {
  let array = [];
  mid(root, array);
  let min = Number.MAX_SAFE_INTEGER;
  for (let i = 0; i < array.length - 1; i++) {
    min = Math.min(min, array[i + 1] - array[i]);
  }
  return min;
};

const mid = (root, array) => {
  if (root) {
    mid(root.left, array);
    array.push(root.val);
    mid(root.right, array);
  } 
}