Mam drzewo BST i chcę usunąć z niego jakiś element. Najpierw tworze to drzewo dodaje jakieś liczby np 1 2 3 4 5 potem podaje liczbę którą chcę usunąć np 4 i jeśli ona jest w tym drzewie to ją usuwam..

void szukaj(struct drzewo *korzen,int x ){
if (korzen==NULL) cout<<"No";
else if(korzen->key==x)


else if(x<korzen->key) {
   szukaj(korzen->lewy,x);
}
else {
    szukaj(korzen->prawy,x);
    }
}
 

Mam taką funkcję szukającą i teraz tam gdzie mam to puste miejsce powinienem wywołać funkcję usuwającą ale nie wiem jak ją utworzyć ma ktoś taki program albo może pomóc?