Инвертирование дерева
Задан массив целых чисел. Создайте из них Бинарное Дерево Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.
Реализуйте метод InvertTree
, который инвертирует бинарное дерево.
Инвертированное дерево:
Напишите код согласно следующего интерфейса:
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 в Бинарное Дерево Поиска
void InOrder(void); // Выведите элементы Бинарного Дерева Поиска при InOrder обходе
void InvertTree(void); // Инвертирование Бинарного Дерева Поиска
};
Вы можете создавать (использовать) по необходимости дополнительные методы.
Входные данные
Первая строка содержит число n (1 ≤ n ≤ 100). Вторая строка содержит n целых чисел.
Выходные данные
Создайте Бинарное Дерево Поиска из входных данных. Инвертируйте дерево используя метод InvertTree. Выведите элементы Бинарного Дерева Поиска после инвертирования используя метод InOrder.