Учитывая бинарное дерево, найти максимальную глубину.
Максимальная глубина число узлов вдоль самого длинного пути от корневого узла вплоть до самого дальнего листа узла.
Примечание: Лист представляет собой узел без детей.
Пример:
Учитывая бинарное дерево [3,9,20, NULL, NULL, 15,7],
3 / \ -20 / \ 15 7
вернуть его глубину = 3.
С учетом эффекта:
Учитывая бинарное дерево, бинарное дерево глубины вычислений
Поймите:
Корневой узел пуст, глубина 0; левое поддерево корневой узел пуст, глубина 1.
Каждый слой глубиной рекурсии +1.
Код C ++:
/ * * * Определение для бинарного узла дерева. * Структура TreeNode { * INT вал; * * TreeNode слева; * * TreeNode право; * TreeNode (целое х): вал (х), слева (NULL), справа (NULL) {} *}; * / Класс Решение { общественности : INT maxDepth (TreeNode * корень) { если (корень == NULL) возврат 0 ; если (корне-> левый == NULL && корне-> правый == NULL) возвращение 1 ; ИНТ влево = maxDepth (корне-> слева); ИНТ право = maxDepth (корне->право); вернуться ? влево> правый левый + 1 : право + 1 ; } };
Результат:
При выполнении с: 12 MS потребление памяти: 19,3 MB