Tree Findmin(Tree t)
 {
   if(t->left==NULL)
    return t;
   else
    return Findmin(t->left); 
    
 }  
Tree Delete(int n,Tree t)
 {
   Tree t1;
   if(n<t->data)
    Delete(n,t->left);
   else
    if(n>t->data)
     Delete(n,t->right);
    else
     if(t->left&&t->right)
      {
        t1=Findmin(t->right);
        t->data=t1->data;
        t->left=Delete(t->data,t->right);
      }
     else
      {
        if(t->left==NULL)
         t=t->right;
        else
         t=t->left;
      }
    return t;
  }          
int Findmin(BSTnode *root){
	if(root == NULL)
		return INT_MAX;

	return min(root->val, Findmin(root->left) );
}