Ciao, se ho ben capito stai studiando la ricorsione, quindi suppongo che l'esercizio che hai proposto devi svolgerlo ricorsivamente, mentre la soluzione ceh hai dato è iterativa.
Inoltre non credo che sia nello scopo dell'esercizio usare la funzione che ti è stata suggerita, anche se cmq si usa quella nel caso pratico.

Per fini di studio cmq la funzione ricorsiva che risolve il problema dovrebbe essere questa

codice:
public String decimal2binary(int n) {
	if (n==0)
		return "0";
	else {
		if (n==1)
			return "1";
		else {
			String bin=decimal2binary(n\2);
			int r=n%2;
			return bin+r;
                }
	}
}
l'ho scritta direttamente nel browser, perdona se ci sono piccoli errori