LeetCode 98 验证二叉搜索树

最开始想的方法用一个vector存下这颗树的中序遍历,然后看这个vector是否严格升序。这里空间复杂度高了,实际上在递归遍历

二叉树的时候,设定好每个节点的上界和下界,在界限内就ok了,正常递归就可以了。

 

AC代码:

class Solution {
public:
    //  加一个界限
   bool isValidBST(TreeNode* root) {
        return isValidBST(root, LONG_MIN, LONG_MAX);
    }
    bool isValidBST(TreeNode *root, long min, long max) {
        if (!root) return true;
        if (root->val <= min || root->val >= max) return false;
        return isValidBST(root->left, min, root->val) && isValidBST(root->right, root->val, max);
    }

};

 

posted @ 2020-02-12 17:49  猪突猛进!!!  阅读(98)  评论(0编辑  收藏  举报