Məsələlər
Одинаковые деревья
Одинаковые деревья
Заданы два массива целых чисел. Создайте из них два Бинарных Дерева Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.
Реализуйте метод 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 иначе.
Giriş verilənləri #1
6 14 9 1 14 20 13 6 14 14 9 1 13 20
Çıxış verilənləri #1
1