530. 二叉搜索树的最小绝对差

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。

差值是一个正数,其数值等于两值之差的绝对值。

示例 1:

530. 二叉搜索树的最小绝对差_第1张图片

输入:root = [4,2,6,1,3]
输出:1

示例 2:

530. 二叉搜索树的最小绝对差_第2张图片

输入:root = [1,0,48,null,null,12,49]
输出:1

提示:

  • 树中节点的数目范围是 [2, 104]
  • 0 <= Node.val <= 105

注意:本题与 783 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 相同

vector vec;

void traversal(TreeNode *root) {
    if (root == nullptr) return;
    //左
    traversal(root->left);
    //中
    vec.push_back(root->val);
    //右
    traversal(root->right);
}

int getMinimumDifference(TreeNode *root) {
    traversal(root);
    int result = INT_MAX;
    //如果元素小于两个则直接返回0表明没有绝对差
    if (vec.size() < 2) return 0;
    //记得下标从1开始避开下标越界
    for (int i = 1; i < vec.size(); ++i) {
        result = min(result, vec[i] - vec[i - 1]);
    }
    return result;
}

你可能感兴趣的:(算法)