Сбалансированное Бинарное Дерево
Ограничение по времени выполнения 1 секунда
Ограничение по использованию памяти 128 мегабайт
Задан массив целых чисел. Создайте из них Бинарное Дерево Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.
Реализуйте метод IsBalanced, который определит, является ли дерево сбалансированным по высоте. Дерево называется сбалансированным по высоте, если для каждой вершины высота ее левого и правого поддерева отличается не более чем на 1.
Напишите код согласно следующего интерфейса:
class TreeNode { public: int val; TreeNode *left, *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Tree { public: TreeNode *head; Tree() : head(NULL) {}; void Insert(int val); // Вставка числа val в Бинарное Дерево Поиска int IsBalanced(void); // Вернуть 1 если дерево сбалансировано по высоте и 0 в противном случае };
// Java class TreeNode { int val; TreeNode left, right; TreeNode(int x) { val = x; left = right = null; } } class Tree { TreeNode head; Tree(); void Insert(int val); // Вставка числа val в Бинарное Дерево Поиска int IsBalanced(); // Вернуть 1 если дерево сбалансировано по высоте и 0 в противном случае }
Вы можете создавать (использовать) по необходимости дополнительные методы.
Входные данные
Первая строка содержит число n (1 ≤ n ≤ 100). Вторая строка содержит n целых чисел.
Выходные данные
Создайте Бинарное Дерево Поиска из входных данных. Выведите 1 если оно сбалансировано по высоте и 0 иначе.
Примеры
Ввод #1
Ответ #1
Отправки 516
Коэффициент принятия 43 %