Задано два масиви цілих чисел: масив ключів і масив значень, що з ними асоціюються. На їх основі потрібно створити Бінарне Дерево Пошуку. Якщо вставлюваний ключ дорівнює ключу в поточній вершині, його слід вставляти в праве піддерево.
Реалізуйте метод IsSymmetric, який визначає, чи є дерево з асоційованих значень дзеркальним відображенням самого себе (тобто симетричним відносно центру).

Напишіть код згідно з наступним інтерфейсом:
// C / C++
class TreeNode
{
public:
int key;
int val;
TreeNode *left, *right;
TreeNode(int key, int val) : key(key), val(val), left(NULL), right(NULL) {}
};
class Tree
{
public:
TreeNode *head;
Tree() : head(NULL) {};
void Insert(int key, int val); // Вставка вершини в Бінарне Дерево Пошуку
int IsSymmetric(void); // Повернути 1 якщо дерево з асоційованих значень симетричне і 0 в протилежному випадку
};// Java
class TreeNode
{
int key, val;
TreeNode left, right;
TreeNode(int key, int val)
{
this.key = key;
this.val = val;
left = right = null;
}
}
class Tree
{
TreeNode head;
Tree();
void Insert(int key, int val); // Вставка вершини в Бінарне Дерево Пошуку
int isSymmetric(); // Повернути 1 якщо дерево з асоційованих значень симетричне і 0 в протилежному випадку
}Ви можете створювати (використовувати) додаткові методи за необхідності.
Перший рядок містить число (1 \le n \le 100). Другий рядок містить цілих чисел - ключі: key[1], key[2], ..., key[n]. Третій рядок містить цілих чисел - асоційовані значення val[1], val[2], ..., val[n]. Значення val[i] асоційоване з ключем key[i].
Створіть Бінарне Дерево Пошуку з вхідних даних. Виведіть 1, якщо дерево з асоційованих значень симетричне, і 0 в протилежному випадку.
Приклад 1