给你一个二叉搜索树的根节点 root
,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
该题和二叉搜索树的经典题目一样,使用中序遍历得到一个递增数组,在递增数组中找到最小绝对差。
代码如下:
class Solution {
public:
vector path;
void traversal(TreeNode* root){
if (root==nullptr) return ;
traversal(root->left);
path.push_back(root->val);
traversal(root->right);
}
int getMinimumDifference(TreeNode* root) {
if (root == nullptr) return 0;
int result = INT_MAX;
traversal(root);
for(int i=0; i<path.size()-1; i++){
result = min(result, abs(path[i] - path[i+1]));
}
return result;
}
};