Java Binary Tree Remove Methode implementieren?

1 Antwort

current.getLeftChild() = remove(current.getLeftChild(), data);

Was soll das sein? Du weist einem Funktionsaufruf einen Wert zu? Bzw. einem Wert einen Wert?

Bei einer Zuweisung wird links - wie der Compiler sagt - eine Variable erwartet. Du solltest vielleicht den Setter mit dem Rückgabewert von remove() aufrufen.


DeusExtimus 
Beitragsersteller
 23.08.2020, 16:45

war in dem fall nicht richtig. In dem Fall war der Teil des Codes Richtig. Für alle die diesen beitrag nochmal lesen: Das Problem hier war, dass die Variablen in "Node" private waren, aber public hätten sein müssen

regex9  24.08.2020, 00:50
@DeusExtimus

Da passt etwas nicht. Die Felder in der Nodes-Klasse (wenn du sie zu Node umbenannt hast, finde ich das nur gut) als private zu kennzeichnen, ist nicht verkehrt, immerhin greifst du doch auch mit Getter- und Setter-Methoden darauf zu. Ersteres ist in deinem Code sichtbar.

Dieser Fehler:

current.getLeftChild() = remove(current.getLeftChild(), data);

wäre, wie alfredo153 schrieb, mit einem Setter auflösbar gewesen:

current.setLeftChild(remove(current.getLeftChild(), data));