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;
    }
  • 相关阅读:
    多进程2
    并发编程
    粘包
    socket
    网络编程
    异常与网络编程
    面向对象高级
    多态
    面向对象2
    SQL数据库约束行为---防止数据乱填(即数据规范化)
  • 原文地址:https://www.cnblogs.com/msymm/p/8278246.html
Copyright © 2011-2022 走看看