Однакові дерева#7465

Однакові дерева

1 секунда
128 мегабайтів
Дуже легка

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

Реалізуйте метод IsSameTree, який перевіряє, чи є дерева однаковими. Два бінарних дерева вважаються однаковими, якщо їхні структури ідентичні, а значення у відповідних вершинах збігаються.

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 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
}

Ви можете створювати (використовувати) додаткові методи за необхідністю.

Вхідні дані

Перша строка містить число (1 \le n \le 100). Друга строка містить цілих чисел.

Третя строка містить число (1 \le m \le 100). Четверта строка містить цілих чисел.

Вихідні дані

Створіть два Бінарних Дерева Пошуку з вхідних даних. Виведіть 1, якщо вони однакові, і 0 в іншому випадку.

Приклади

Приклад 1

Loading
Loading