public void usun(int wartosc) {
		korzen = Usunrekord(korzen, wartosc);
	}

	private Wezel Usunrekord(Wezel korzen, int wartosc1) {
		if (korzen == null)
			return korzen;
		

		if (wartosc1 < korzen.getWartosc()) {
			korzen.setLewy(Usunrekord(korzen.getLewy(), wartosc1));
			if (wartosc1 > korzen.getWartosc())
				korzen.setPrawy(Usunrekord(korzen.getPrawy(), wartosc1));
			else {

				if (korzen.getLewy() == null)
					return korzen.getPrawy();
				else if (korzen.getPrawy() == null)
					return korzen.getLewy();

				korzen.setWartosc(znajdzMin());

				korzen.setPrawy(Usunrekord(korzen.getPrawy(), korzen.getWartosc()));
			}

			return korzen;
		}
		return korzen;
	}

Mam problem z tą metodą, chciałbym, żeby usuwała, ale operatory przypisania nic nie dają, drzewo tworzę za pomocą losowo wygenerowanej tablicy, gdzie a[0] zawsze jest korzeniem, próbowałem kilku metod na usunięcie elementu z drzewa, ale żaden nie działa, ewentualnie nie wiem co zrobić by zadziałało.
Dostaje taki wynik na przykład:

Podaj ilosc elementow ile chcesz wprowadzic do drzewa: 5
17 19 26 15 7 
Wartość minimum: 7
Wartość maksimum: 26
Wyswietlanie Preorder:
17, 15, 7, 19, 26, 
Wyświetlanie Inorder:
7, 15, 17, 19, 26, 
Wyświetlanie Postorder:
7, 15, 26, 19, 17, 
Jaka wartosc chcesz usunac: 19
7, 15, 17, 19, 26,