Druck-Blatt-Knoten des binären Baums
Ich bin wrriting eine rekursive Funktion, druckt Blatt-Knoten eines binären Baums.
Hier ist, was ich habe, so weit:
public static void printLeafNodes(BinaryNode<AnyType> t)
{
if(t == NULL)
return;
if(t.left == NULL && t.right==NULL)
System.out.println(t.element);
else if(t.left != NULL && t.right == NULL)
printLeafNodes(t.left);
else
printLeafNodes(t.right);
}
Wäre ich sehr dankbar, wenn jemand ermitteln können beliebige fließt in meine Logik.
Dank.
- Was ist falsch an diesem code?
- Ich wollte nur wissen, ob es irgendwelche logischen Fehler in meiner Methode. Auch, wenn es gibt ein besserer Weg, es zu schreiben.
- Ich bin froh, dass jemand es geschafft haben, Ihre Frage zu beantworten. Jedoch sollten Sie beachten, dass
you should only ask practical, answerable questions based on actual problems that you face
(schauen Sie sich die faq). In seiner jetzigen form deine Frage ist praktisch nicht beantwortbar und führt zu einem längeren Gespräch. Auch ist es nicht zeigen Forschung: Sie wollen einfach nur jemanden sonst zum testen und Debuggen dieser code für Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
t.left
undt.right
null sind?if (t.left == NULL && t.right == NULL) { System.out.println(t.element); return; }
Seitt.left
undt.right
sind null, es gibt nicht viel Sinn in der Fortsetzung der Funktion zu nennenprintLeafNodes
auf diesen Knoten, da diese Aufrufe werden nur sofort wieder, so dass anstelle nur halt die Funktion direkt nach dem drucken. Es ist nicht ein notwendiger Schritt, aber er speichert das Programm aus aufzurufenprintLeafNodes
zweimal, wenn es nicht wirklich zu.