LeetCode第 783 题:二叉搜索树节点最小距离(C++)

783. 二叉搜索树节点最小距离 - 力扣(LeetCode)

LeetCode第 783 题:二叉搜索树节点最小距离(C++)_第1张图片

注意是任意两结点

中序遍历,记录中序遍历的前一个结点值就可以了:

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;
    }
};

当然如果使用数组存储下来的话,就更简单了。

你可能感兴趣的:(leetcode)