bool solve(Node* root,int mini,int maxi) { if(!root) return true; if(root->data>mini and root->data<maxi) { bool lefti=solve(root->left,mini,root->data); bool righti=solve(root->right,root->data,maxi); if(lefti and righti) return true; } return false; } bool isBST(Node* root) { return solve(root,INT_MIN,INT_MAX); }