给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。
示例:
输入:
输出:
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) {
};
个人解法
var getMinimumDifference = function(root) {
//nodeVal存放节点值
var nodeVal = [];
//遍历函数
function bianli(node){
if(node === null){
return;
}
nodeVal.push(node.val);
bianli(node.left);
bianli(node.right);
};
bianli(root);
//设置初始值
var result = Math.abs(nodeVal[0] - nodeVal[1]);
//两两遍历
for(var i = 0; i < nodeVal.length - 1; i++){
for(var j = i + 1; j < nodeVal.length; j++){
if(Math.abs(nodeVal[i] - nodeVal[j]) < result){
result = Math.abs(nodeVal[i] - nodeVal[j]);
}
}
}
return result;
};