[二叉树][中序遍历]leetcode530:二叉搜索树的最小绝对差(easy)

题目:
在这里插入图片描述
题解:

  • 利用中序遍历将二叉搜索树转换为一个升序数组,然后遍历这个数组,计算差的绝对值。

代码如下:

class Solution {
public:
    //题解:中序遍历求二叉树的数组,然后依次算两个节点差的绝对值
    int getMinimumDifference(TreeNode* root) {
        vector<int> nums;
        inorderTraversal(root,nums);
        int n=nums.size();
        int res=INT_MAX;
        for(int i=1;i<n;++i){
            res=min(res,abs(nums[i]-nums[i-1]));
        }
        return res;
    }
    void inorderTraversal(TreeNode* root,vector<int>& nums){
        if(!root)return;
        inorderTraversal(root->left,nums);
        nums.push_back(root->val);
        inorderTraversal(root->right,nums);
    }
};
发布了484 篇原创文章 · 获赞 149 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_43152052/article/details/103931572
今日推荐