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;
}
};