关键词:bst 中序遍历
利用二叉搜索树中序遍历下有序的特性,计算相邻两个数的差值
细节:开头第一个节点不用计算,用begin来标记是否是开头节点
class Solution {
private:
int pre;
int res;
bool begin;
void inorder(TreeNode* root){
if (root == nullptr)
return;
inorder(root->left);
res = begin == false?min(root->val - pre,res) : res ;
pre = root->val;
begin = false;
inorder(root->right);
}
public:
int minDiffInBST(TreeNode* root) {
begin = true;
res = INT_MAX;
inorder(root);
return res;
}
};