Одинаковые деревья
Очень простая
Ограничение по времени выполнения 1 секунда
Ограничение по использованию памяти 128 мегабайт
Заданы два массива целых чисел. Создайте из них два Бинарных Дерева Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.
Реализуйте метод IsSameTree который проверяет одинаковы ли деревья или нет. Два бинарных дерева считаются одинаковыми, если их структуры идентичны, а значения в соответствующих вершинах одинаковы.
Напишите код согласно следующего интерфейса:
// 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 IsSameTree(Tree *p); // Вернуть 1 если текущее дерево равно p, иначе вернуть 0 };
// 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 IsSameTree(Tree p); // Вернуть 1 если текущее дерево равно p, иначе вернуть 0 }
Вы можете создавать (использовать) по необходимости дополнительные методы.
Входные данные
Первая строка содержит число n (1 ≤ n ≤ 100). Вторая строка содержит n целых чисел.
Третья строка содержит число m (1 ≤ m ≤ 100). Четвертая строка содержит m целых чисел.
Выходные данные
Создайте два Бинарных Дерева Поиска из входных данных. Выведите 1 если они одинаковы, и 0 иначе.
Примеры
Ввод #1
Ответ #1
Отправки 840
Коэффициент принятия 36 %