Условие задачи

Дано бинарное дерево, необходимо найти его максимальную глубину. Максимальная глубина бинарного дерева - это количество узлов на самом длинном пути от корневого узла до самого дальнего листового узла.

Написать функцию max_depth, которая принимает на вход корень бинарного дерева и возвращает его максимальную глубину.

Примеры

Пример 1:

    3
   / \\\\
  9  20
    /  \\\\
   15   7

Входные данные: root = [3,9,20,null,null,15,7]

Выходные данные: 3

Пояснение: Длина самого длинного пути от корневого узла до самого дальнего листового узла равна 3.

Решение

  1. Если корень дерева равен None, то максимальная глубина равна 0.
  2. Иначе, рекурсивно ищем максимальную глубину для левого и правого поддерева, выбираем максимум из них и добавляем 1, так как мы учитываем корневой узел.

Объяснение с примером

Пусть у нас есть бинарное дерево:

     3
   /   \\\\
  9     20
       /  \\\\
     15    7
    /  \\\\
   12   10

Найдем его максимальную глубину.

Сначала рекурсивно найдем максимальную глубину для левого поддерева:

     3
   /
  9

Максимальная глубина левого поддерева равна 1.

Затем рекурсивно найдем максимальную глубину для правого поддерева: