程序笔记   发布时间:2022-07-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了leetcode 验证二叉搜索树 中等大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

leetcode 验证二叉搜索树 中等

 

 

递归验证,由于某个结点在父节点的左子树,但同时也可能作为祖父结点的右子树,这两个时候需要的最大最小值是不同的,所以需要返回 pair。然后按二叉搜索树性质验证即可。

class Solution {
public:
    bool isValidBST(TreeNode* root) {
        auto _ = solve(root);
        return ans;
    }

    pair<int, int> solve(TreeNode *root) {      // 某一棵子树中的最小值与最大值; flag == true 表示为父亲的左二子
        if(!ans) return {-1, -1};
        if(!root) return {-1, -1};
        auto retLef = solve(root -> left);
        auto retRig = solve(root -> right);
        if(root -> left && retLef.second >= root -> val) ans = false;
        if(root -> right && retRig.first <= root -> val) ans = false;
        pair<int, int> ret;
        ret.first = root -> left ? retLef.first : root -> val;
        ret.second = root -> right ? retRig.second : root -> val;
        return ret;
    }

    bool ans = true;
};

 

大佬总结

以上是大佬教程为你收集整理的leetcode 验证二叉搜索树 中等全部内容,希望文章能够帮你解决leetcode 验证二叉搜索树 中等所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: