Node *minimum(Node *root){
    if(root==NULL)
       return root;
    if(root->left !=NULL)
       return minimum(root->left);
       return root;
}
Node *deletion(Node *root,int num){
    if(root==NULL)
      return root;
    if(num<root->data)
       root->left=deletion(root->left,num);
    else if(num>root->data)
       root->right=deletion(root->right,num);
       else{
           if(root->left==NULL && root->right==NULL)
              return NULL;
            else if(root->left!=NULL && root->right==NULL)
               return root->left;
            else if(root->left==NULL && root->right!=NULL)
               return root->right;
            else{
                Node *temp=minimum(root->right);
                root->data=temp->data;
                root-right=deletion(root->right,temp->data);
            }
       }
       return root;
}