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

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

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

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

Реализуйте метод 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 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
6
14 9 1 14 20 13
Вихідні дані #1
3
Автор Михайло Медведєв
Джерело Мова С++ / Java