783. 二叉搜索树节点最小距离 - 力扣(LeetCode)
注意是任意两结点
中序遍历,记录中序遍历的前一个结点值就可以了:
class Solution {
public:
int res = 110;
int pre = -110;//记录中序遍历的前一个结点值
void inorder(TreeNode *root){
if(!root || res == 1) return;
if(root->left){
inorder(root->left);
}
res = min(res, root->val - pre);
pre = root->val;
if(root->right){
inorder(root->right);
}
}
int minDiffInBST(TreeNode* root) {
inorder(root);
return res;
}
};
当然如果使用数组存储下来的话,就更简单了。