学习要点
加深纯递归算法的理解
题目链接
题目描述

解法:纯递归
cpp
vector<int> v;
void dfs(TreeNode* root)
{
if(root == nullptr)
{
return;
}
dfs(root->left);
v.push_back(root->val);
dfs(root->right);
}
bool isValidBST(TreeNode* root) {
dfs(root);
int flag = true;
for(int i = 0; i<v.size();i++)
{
if(i > 0)
{
if(v[i] <= v[i-1])
{
flag = false;
break;
}
}
}
return flag;
}
解析
- 搜索二叉树的中序遍历是一个升序序列
- 中序遍历该二叉树,将其存入数组vector中
- 遍历这个数组,判断是否是一个升序数组