zoukankan      html  css  js  c++  java
  • Binary Search Tree-530. 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.

    #include <iostream>
    #include <vector>
    #include <limits.h>
    using namespace std;
    
    class Solution {
    public:
        int getMinimumDifference(TreeNode* root) {
            if(!root)
                return 0;
            vector<int> InOrderArray;
            getInOrderArray(InOrderArray, root);
            //INT_MAX定义
            //zhidao.baidu.com/question/294243885.html
            int res = INT_MAX;
            for(int i=1; i<InOrderArray.size(); i++){//遍历数组得到相邻两个元素最小的差
                if(InOrderArray[i] - InOrderArray[i-1] < res)
                    res = InOrderArray[i] - InOrderArray[i-1];
            }
            return res;
        }
        void getInOrderArray(vector<int> &InOrderArray, TreeNode* root){//通过中序遍历得到一个升序数组
            if(!root)
                return;
            getInOrderArray(InOrderArray, root->left);
            InOrderArray.push_back(root->val);
            getInOrderArray(InOrderArray, root->right);
        }
    
    };
    int main()
    {
        cout << "Hello world!" << endl;
        return 0;
    }
  • 相关阅读:
    php学习记录 易混淆
    自己学习smarty的一些代码 和记录
    Java 死锁
    Java多线程下单例
    Java 线程安全问题
    Java 线程状态
    Java 创建线程
    Java clone() 浅拷贝 深拷贝
    Java 多线程
    Java throw try catch
  • 原文地址:https://www.cnblogs.com/msymm/p/8278246.html
Copyright © 2011-2022 走看看