[力扣题解]

作者 : admin 本文共701个字,预计阅读时间需要2分钟 发布时间: 2024-06-9 共2人阅读

题目:530. 二叉搜索树的最小绝对差

思路

中序遍历
对于二叉搜索树而言,中序遍历可以把树拉直为一个从小到大排序的数组;

代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
// 用中序遍历拉直之后,是一个从小到大的数组
class Solution {
public:
    vector<int> result;
    int min = 100005;
    void travel(TreeNode* root)
    {
        // 左
        if(root->left)
        {
            travel(root->left);
        }
        // 中
        result.push_back(root->val);
        // 右
        if(root->right)
        {
            travel(root->right);
        }
    }

    int getMinimumDifference(TreeNode* root) {
        travel(root);
        int i;
        for(i = 0; i < result.size()-1; i++)
        {
            if(result[i+1] - result[i] < min)
            {
                min = result[i+1] - result[i];
            }
        }
        return min;
    }
};
本站无任何商业行为
个人在线分享 » [力扣题解]
E-->