eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Максимальная глубина Бинарного Дерева

Максимальная глубина Бинарного Дерева

Лимит времени 1 секунда
Лимит использования памяти 128 MiB

Задан массив целых чисел. Создайте из них Бинарное Дерево Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.

Реализуйте метод MaxDepth, который находит максимальную глубину дерева. Максимальной глубиной называется количество вершин в самом длинном пути от корня до самого дальнего листа.

prb7463.gif

Напишите код согласно следующего интерфейса:

// C, C++
class TreeNode
{
public:
  int val;
  TreeNode *left;
  TreeNode *right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Tree
{
public:
  TreeNode *head;
  Tree() : head(NULL) {};
  void Insert(int val); // Вставка числа val в Бинарное Дерево Поиска
  int MaxDepth(void); // Вернуть максимальную глубину Бинарного Дерева Поиска
};
// Java
class TreeNode
{
  int val;
  TreeNode left;
  TreeNode right;
  TreeNode(int x)
  {
    val = x;
    left = null;
    right = null;
  }
}

class Tree
{
  TreeNode head;
  Tree();
  void Insert(int val); // Вставка числа val в Бинарное Дерево Поиска
  int maxDepth() // Вернуть максимальную глубину Бинарного Дерева Поиска
}

Вы можете создавать (использовать) по необходимости дополнительные методы.

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

Первая строка содержит число n (1n100). Вторая строка содержит n целых чисел.

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

Создайте Бинарное Дерево Поиска из входных данных. Найдите и выведите его максимальную глубину.

Пример

Входные данные #1
6
14 9 1 14 20 13
Выходные данные #1
3
Автор Михаил Медведев
Источник Язык С++ / Java