一、题目
二、代码
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution
{
public:
//搜索树 中序包含顺序
void track_back(TreeNode* process_node, vector<int>& res)
{
if(process_node->left) track_back(process_node->left, res);
res.push_back(process_node->val);
if(process_node->right) track_back(process_node->right, res);
}
bool isValidBST(TreeNode* root)
{
int i,j;
bool return_bool =1;
vector<int> res;
if(root==nullptr) return 0;
else
{
res.clear();
track_back(root, res);
// for(i=0;i<res.size();i++) std::cout<<" "<<res[i];
// std::cout<<std::endl;
if(res.size()==1) return 1;
for(i=1;i<res.size();i++)
{
if(res[i]<=res[i-1])
{
return_bool=0;
break;
}
}
return return_bool;
}
}
};