欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-19 11:30:00
...

题目:
[二叉树][中序遍历]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);
    }
};