int judge(NODE *p, int leftbound, int rightbound) {
if (p==NULL) return 1;
if (p->data < leftbound || p->data > rightbound) return 0;//不要等号
if (!judge(p->left,leftbound,p->data)) return 0;
if (!judge(p->right, p->data,rightbound)) return 0;
return 1;
}
typedef struct node{
int data;
struct node *left, *right;
}NODE;
int judge(NODE *p, int leftbound, int rightbound) {
if (p==NULL) return 1;
if (p->data <= leftbound || p->data >= rightbound) return 0;
if (!judge(p->left,leftbound,p->data)) return 0;
if (!judge(p->right, p->data,rightbound)) return 0;
return 1;
}
typedef struct node{
int data;
struct node *left, *right;
}NODE;
int judge(NODE *p, int leftbound, int rightbound) {
if (p==NULL) return 1;
if (p->left!=NULL && (p->left->data>=p->data || p->left->data<=leftbound)) return 0;
if (p->right!=NULL && (p->right->data<p->data || p->right->data>=rightbound)) return 0;
if (!judge(p->left,leftbound,p->data)) return 0;
if (!judge(p->right, p->data,rightbound)) return 0;
return 1;
}