有效 二叉搜索树定义如下:
- 节点的左子树只包含 小于 当前节点的数。
- 节点的右子树只包含 大于 当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
class Solution {
public:
vector<int>vec;
void isValid(TreeNode* root){
if(root == nullptr) return ;
isValid(root->left);
vec.push_back(root->val);
isValid(root->right);
}
bool isValidBST(TreeNode* root) {
isValid(root);
for(int i=1;i<vec.size();i++)
{
if(vec[i]<=vec[i-1]) return false;
}
return true;
}
};
class Solution {
public:
vector<int>vec;
void ger_min(TreeNode* root){
if(root == nullptr)return;
ger_min(root->left);
vec.push_back(root->val);
ger_min(root->right);
}
int getMinimumDifference(TreeNode* root) {
ger_min(root);
int result = INT_MAX;
for(int i=1;i<vec.size();i++)
{
result = min(result,vec[i]-vec[i-1]);
}
return result;
}
};