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 / 2 Output: 1 Explanation: 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;
}
};