Die Höhe eines Binärbaums ist der Abstand vom Wurzelknoten zum untergeordneten Knoten, der am weitesten von der Wurzel entfernt ist.
Unten ist ein Beispiel:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Höhe des Binärbaums: 4
Definition eines binären Baumes
Ein Baum ist ein Objekt, das einen vorzeichenbehafteten ganzzahligen Wert und entweder zwei andere Bäume oder Zeiger darauf enthält.
Die Struktur der binären Baumstruktur sieht ungefähr so aus:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
Die Herausforderung:
Eingang
Die Wurzel eines binären Baumes
Ausgabe
Die Zahl, die die Höhe eines Binärbaums darstellt
Angenommen, Sie erhalten die Wurzel eines Binärbaums als Eingabe, schreiben Sie das kürzeste Programm, das die Höhe eines Binärbaums berechnet und die Höhe zurückgibt. Das Programm mit der geringsten Anzahl von Bytes (Accounting Whitespaces) gewinnt.
h
. Könnte besser sein, eine bestimmte Struktur zu definieren, die nur aus Listen besteht, um diese Herausforderung zu bewältigen.
[root_value, left_node, right_node]
in der alle left_node
und right_node
auch Binärbäume zulässig sind? Es wird in vielen Sprachen trivial sein, aber in einigen anderen könnte es Spaß machen.
a tree is an object that contains a value and either two other trees or pointers to them
. Eine Definition, die Sprachen ohne Objekte einschließt, wäre auch schön.