[leetcode]-530. Minimum Absolute Difference in BST

来源:互联网 发布:辛巴软件 编辑:程序博客网 时间:2024/05/22 03:51

x

求BST树种节点绝对差值的最小值,由BST树的性质可知,中序遍历会得到一个有序数组,显然所求必然是有序数组中所有相邻两数差的最小值。利用递归算法,在遍历的过程中,利用当前节点值和前一节点值(利用pre进行记录)求绝对值更新结果minDiff。

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int minDiff = INT_MAX;    int pre = -1;    int getMinimumDifference(TreeNode* root) {        if(root == NULL)            return minDiff;        getMinimumDifference(root->left);        if(pre != -1){            minDiff = min(minDiff,root->val - pre);           }        pre = root-> val;        getMinimumDifference(root->right);        return minDiff;    }};


0 0
原创粉丝点击