20、C++算法之代码随想录(二叉树)——二叉搜索树的最小绝对差
·
1.问题
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
示例 1:

输入:root = [4,2,6,1,3] 输出:1
2.思路
对二叉搜索树进行中序遍历得到一个有序的数组,然后计算相邻两个数的差值,找到最小的值即可。
3.代码实现
vector<int> record;
private:
void traversal(TreeNode* root){
if(root==nullptr) return;
traversal(root->left);
record.push_back(root->val);
traversal(root->right);
}
public:
int getMinimumDifference(TreeNode* root) {
int result = INT_MAX;
traversal(root);
for(int i=1;i<record.size();i++)
{
if(record[i]-record[i-1]<result){
result = record[i]-record[i-1];
}
}
return result;
}
更多推荐

所有评论(0)