Binary Search Tree-530. Minimum Absolute Difference in BST
阿新 • • 發佈:2018-01-13
stream exp find aid 中序遍歷 namespace 遍歷 元素 note
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; }
Binary Search Tree-530. Minimum Absolute Difference in BST