19、C++算法之代码随想录(二叉树)——验证二叉搜索树
·
1.问题
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
- 节点的左子树只包含 小于 当前节点的数。
- 节点的右子树只包含 大于 当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
示例 1:

输入:root = [2,1,3] 输出:true
2.思路
二叉搜索树使用中序遍历得到的是一组有序的数组,通过判断这个数组是否有序即可。
3.代码实现
vector<int> record;
private:
void traversal(TreeNode* root)
{
if(root==nullptr) return;
traversal(root->left);
record.push_back(root->val);
traversal(root->right);
}
public:
bool isValidBST(TreeNode* root) {
if(root==nullptr) return false;
traversal(root);
for(int i=1;i<record.size();i++)
{
if(record[i]<=record[i-1]) return false;
}
return true;
}
更多推荐

所有评论(0)