自学内容网 自学内容网

【二叉搜索树】1 leetcode 98 验证二叉搜索树

1 题目描述

题目链接:验证二叉搜索树
在这里插入图片描述

2 题目解析

搜索二叉树的特点就是, 中序遍历之后的值是有序的。

  • 根据这个性质,可以对树进行中序遍历,将遍历的结果存入到vector中
  • 最后判断vector中的值的顺序。如果是从小到大有序的,就是搜索二叉树;否则不是。

3 代码

class Solution {
public:
    bool isValidBST(TreeNode* root) {
        vector<int> res;
        Inorder(res, root);

        //判断中序遍历的结果是否有序
        for (int i = 0; i < res.size() - 1; ++ i)
        {
            if (res[i + 1] <= res[i])
                return false;
        }
        return true;
    }

    //中序遍历
    void Inorder(vector<int>& res, TreeNode* root)
    {
        if (root == nullptr)
            return;
        
        Inorder(res, root->left);
        res.push_back(root->val);
        Inorder(res, root->right);
    }
    //直接中序遍历,如果不是正确的,就返回false
};

在这里插入图片描述


原文地址:https://blog.csdn.net/qq_64076540/article/details/142830015

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!