基础题 不解释
#include <iostream>
struct node
{
int data;
node* left;
node* right;
node(int eData, node* eLeft, node* eRight)
{
data = eData;
left = eLeft;
right = eRight;
}
};
bool isBST(node* n, int min, int max)
{
if(!n)
return true;
if(n->data > min && n->data < max)
{
return isBST(n->left, min, n->data) && isBST(n->right, n->data, max);
}
else
return false;
};
int main()
{
node* n1 = new node(1, NULL, NULL);
node* n7 = new node(7, NULL, NULL);
node* n19 = new node(19, NULL, NULL);
node* n18 = new node(18, NULL, n19);
node* n6 = new node(6, n1, n7);
node* n15 = new node(15, n6, n18);
bool res = isBST(n15, INT_MIN, INT_MAX);
return 0;
}