Висота двійкового дерева - це відстань від кореневого вузла до дочірнього вузла, що знаходиться найдалі від кореня.
Нижче наведено приклад:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Висота двійкового дерева: 4
Визначення бінарного дерева
Дерево - це об'єкт, який містить підписане ціле значення та два інших дерева або покажчики на них.
Структура бінарної структури дерева виглядає приблизно так:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
Змагання:
Вхідні дані
Корінь двійкового дерева
Вихід
Число, яке представляє висоту двійкового дерева
Припускаючи, що вам подано корінь двійкового дерева як вхідний, напишіть найкоротшу програму, яка обчислює висоту бінарного дерева та повертає висоту. Виграє програма з найменшою кількістю байтів (облік пробілів).
h
. Можливо, краще визначити конкретну структуру, складену лише із списків, для цієї задачі.
[root_value, left_node, right_node]
де кожне з них, left_node
а right_node
також є бінарними деревами, прийнятні? Це буде тривіально на багатьох мовах, але може бути цікавим у деяких інших.
a tree is an object that contains a value and either two other trees or pointers to them
. Також було б непоганим визначення, яке включає мови без об’єктів.