• [LeetCode] Minimum Absolute Difference in BST


    Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

    Example:

    Input:
    
       1
        
         3
        /
       2
    
    Output:
    1
    
    Explanation:
    The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).

    Note: There are at least two nodes in this BST.

    找出一个二叉树中任意两个节点的最小绝对值。利用二叉树中序遍历的性质,将二叉树按从小到大的顺序存储在一个数组中,然后遍历数组找出最小的绝对值。

    class Solution {
    public:
        vector<int> res;
        int getMinimumDifference(TreeNode* root) {
            inOrder(root);
            int minDiff = INT_MAX;
            for (int i = 1; i != res.size(); i++) {
                int tmp = res[i] - res[i - 1];
                minDiff = min(minDiff, tmp);
            }
            return minDiff;
        }
        void inOrder(TreeNode* root) {
            if (root == nullptr)
                return;
            inOrder(root->left);
            res.push_back(root->val);
            inOrder(root->right);
        }
    };
    // 19 ms
  • 相关阅读:
    原型污染
    C#之抛异常
    为什么['1', '7', '11'].map(parseInt) returns [1, NaN, 3]?
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
    其他
  • 原文地址:https://www.cnblogs.com/immjc/p/7183337.html
Copyright © 2020-2023  润新知