LeetCode 530. Minimum Absolute Difference in BST

来源:互联网 发布:每股收益的算法 编辑:程序博客网 时间:2024/06/05 17:34

530. Minimum Absolute Difference in BST

Description

Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

 Example:Input:   1    \     3    /   2Output:1Explanation:The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).

Solution

  • 题意即返回一棵二叉搜索树上任意两个节点之间的最小绝对值.
  • 我们可以利用二叉搜索树的性质,中序遍历之后是有序数组,然后在有序数组中获得最小绝对值是很容易的,只需要线性遍历一遍即可,代码如下:
class Solution {public:    vector<int> t;    void travel(TreeNode *root) {        if (!root) return;        travel(root->left);        t.push_back(root->val);        travel(root->right);        return ;    }    int getMinimumDifference(TreeNode* root) {        travel(root);        int minvalue = 100000;        for (int i = 1;i < t.size();i++) {            minvalue = min(minvalue,t[i] - t[i - 1]);        }        return minvalue;    }};