建设一个网站平台的费用吗,淄博建网站哪家好,如何建微信公众号,手机网站搜索原题链接#xff1a;530.二叉搜索树的最小绝对差
思路#xff1a; 因为是二叉搜索树#xff0c;根据他的特性#xff0c;直接递归中序遍历获取所有元素#xff0c;成为一个有序数组 然后在有序数值内进行双指针递归遍历即可获得最小差值 因为是有序数组#xff0c;所以其…原题链接530.二叉搜索树的最小绝对差
思路 因为是二叉搜索树根据他的特性直接递归中序遍历获取所有元素成为一个有序数组 然后在有序数值内进行双指针递归遍历即可获得最小差值 因为是有序数组所以其实求相邻两个值的差值是不是最小值即可
全代码
class Solution {
public:void rev(TreeNode* Node, vectorint vec){//中序获得树的所有值if (Node-left) rev(Node-left, vec);vec.push_back(Node-val);if (Node-right) rev(Node-right, vec);}int getmin(vectorintvec){//获取最小值if (vec.size() 2) return 0;int num_min INT_MAX;for (int i 1; i vec.size(); i) { // 统计有序数组的最小差值num_min min(num_min, vec[i] - vec[i-1]);}return num_min;}int getMinimumDifference(TreeNode* root) {if(root NULL) return 0;vectorint vec;rev(root,vec);//获取到树中所有结点的值int cns getmin(vec);return cns;}
};