Hallo, ich bin ein ziemlicher Anfänger, habt also bitte Nachsicht mit mir.
In der Schule behandeln wir gerade das Thema Binäre Bäume und wir sollten eine Methode programmieren, die die Anzahl der Blätter ausgibt. Das habe ich auch, die Methode funktioniert auch, aber mein Lehrer meinte, sie wäre (syntaktisch) falsch und dass er mir in einer Klausur Punkte für den Code abgezogen hätte. Er meint, wenn ich die Methode anzahlBlätter() rekursiv aufrufe (Zeile 3 und 6), gibt sie einen Zahlenwert, den ich verarbeiten muss. In meinem Code wäre es also so, als ob ich einfach eine Zahl geschrieben hätte. Ich verstehe seine Argumentation ehrlich gesagt nicht, kann mir jemand weiterhelfen?
Danke im Voraus!
[CODE lang="java" highlight="3,6"]public int anzahlBlätter(BinaryTree b){
if(b.getLeftTree().getContent()!=null){
this.anzahlBlätter(b.getLeftTree());
}
if(b.getRightTree().getContent()!=null){
this.anzahlBlätter(b.getRightTree());
}
if (b.getLeftTree().getContent()==null && b.getRightTree().getContent()==null){
zahl = zahl + 1;
}
return zahl;
}[/CODE]
In der Schule behandeln wir gerade das Thema Binäre Bäume und wir sollten eine Methode programmieren, die die Anzahl der Blätter ausgibt. Das habe ich auch, die Methode funktioniert auch, aber mein Lehrer meinte, sie wäre (syntaktisch) falsch und dass er mir in einer Klausur Punkte für den Code abgezogen hätte. Er meint, wenn ich die Methode anzahlBlätter() rekursiv aufrufe (Zeile 3 und 6), gibt sie einen Zahlenwert, den ich verarbeiten muss. In meinem Code wäre es also so, als ob ich einfach eine Zahl geschrieben hätte. Ich verstehe seine Argumentation ehrlich gesagt nicht, kann mir jemand weiterhelfen?
Danke im Voraus!
[CODE lang="java" highlight="3,6"]public int anzahlBlätter(BinaryTree b){
if(b.getLeftTree().getContent()!=null){
this.anzahlBlätter(b.getLeftTree());
}
if(b.getRightTree().getContent()!=null){
this.anzahlBlätter(b.getRightTree());
}
if (b.getLeftTree().getContent()==null && b.getRightTree().getContent()==null){
zahl = zahl + 1;
}
return zahl;
}[/CODE]