二叉搜索树——98. 验证二叉搜索树

二叉搜索树——98. 验证二叉搜索树

题目:

思路:

二叉搜索树啊,自然而然考虑中序遍历,若真的是二叉搜索树,则为递增序列,反之则不是。

代码:

class Solution {
private:
    // 存放二叉搜索树按照中序遍历读取的节点顺序
    vector<int> vec;
    void traversal(TreeNode* node){
        if(node==NULL) return;
        traversal(node->left);      // 左
        vec.push_back(node->val);   // 中
        traversal(node->right);     // 右
    }
public:
    bool isValidBST(TreeNode* root) {
        vec.clear();
        // 中序遍历
        traversal(root);
        //  判断是不是递增序列
        for(int i=1; i<vec.size();i++){
            // 注意要小于等于,搜索树里不能有相同元素
            if(vec[i] <= vec[i-1]) return false;
        }
        return true;
    }
};

Rank:

Tips:

还是要记住这个特点:中序遍历下,输出的二叉搜索树节点的数值是有序序列。这样很多二叉搜索树的问题就有了思路。

posted @ 2021-04-13 23:19  Originhhh  阅读(46)  评论(0)    收藏  举报