Предположим, у вас есть такое дерево:
5
/ \
/ \
3 7
/ / \
2 6 8
\
9
Высота дерева 3 (между 3 root узлом 5 и самым глубоким листовым узлом 9 есть 3 ветви).
Высоты поддеревьев: 1 для левого (с корнем в узле 3) и 2 для правого (с 7), и
3 = H(node(5)) = 1 + max(H(node(3)), H(node(7))) = 1 + max(1, 2)
Теперь предположим, что вы добавили узел с ключ 4 к дереву:
5
/ \
/ \
3 7
/ \ / \
2 4 6 8
\
9
Высота дерева, укорененного в узле 3, не увеличилась: H (узел (3)) по-прежнему равен 1.
Если вы предложите При замене алгоритма ваше дерево будет ошибочно получать высоту 2 после описанной вставки: 1 + H(node(3))
вместо того, чтобы поддерживать высоту равной 3.
IF ваш код был фактически 'проверено' любым сайтом программирования, затем убегайте с этого сайта и никогда больше не доверяйте им.