本题思路同验证二叉搜索树,以前序遍历的方式将二叉搜索树变为一个递增的有序数组,求数组的最小绝对差就可以了
代码如下:
class Solution {
public:
vector<int> vec;
void traversal(TreeNode* root) {
if(root == NULL) return;
traversal(root->left);
vec.push_back(root->val);
traversal(root->right);
}
int getMinimumDifference(TreeNode* root) {
int mingap = INT_MAX;
vec.clear();
traversal(root);
for(int i = 1; i < vec.size(); i++){
mingap = min(mingap, vec[i] - vec[i - 1]);
}
return mingap;
}
};