Hallo!
Möchte in einem Binärbaum zu jedem Knoten die Tiefe ausgeben lassen. Das Prinzip eines Baumes und seiner Tiefe habe ich soweit verstanden, nur kann ich daraus kein Java-Programm machen. Habe mal an dieser Methode gebastelt:
Hierbei wird zwar eine Tiefe ausgegeben, aber in falscher Reihenfolge (Wurzel soll ja Tiefe 0 haben). Anscheinend verstehe ich noch nicht wirklich, was diese Methode eigentlich genau macht. Kann mir das jemand erklären oder vielleicht einen Tipp geben, wie ich die richtige Tiefe erhalte?
Danke schonmal!
Viele Grüße,
kwonilchang
Möchte in einem Binärbaum zu jedem Knoten die Tiefe ausgeben lassen. Das Prinzip eines Baumes und seiner Tiefe habe ich soweit verstanden, nur kann ich daraus kein Java-Programm machen. Habe mal an dieser Methode gebastelt:
Code:
int depth(BinaryNode n) {
int leftHeight;
int rightHeight;
if (n.left == null) {
leftHeight = -1;
} else {
leftHeight = depth(n.left);
}
if (n.right == null) {
rightHeight = -1;
} else {
rightHeight = depth(n.right);
}
return 1 + Math.max(leftHeight, rightHeight);
}
Hierbei wird zwar eine Tiefe ausgegeben, aber in falscher Reihenfolge (Wurzel soll ja Tiefe 0 haben). Anscheinend verstehe ich noch nicht wirklich, was diese Methode eigentlich genau macht. Kann mir das jemand erklären oder vielleicht einen Tipp geben, wie ich die richtige Tiefe erhalte?
Danke schonmal!
Viele Grüße,
kwonilchang