Invert a Tree#7455

Invert a Tree

1 second
64 megabytes
Easy

Given an array of integers. Create a Binary Search Tree from these numbers. If the inserted value equals to the current node, insert it to the right subtree.

Write a method InvertTree that inverts a binary tree.

prb7455.gif

Inverted tree:

prb7455_1.gif

Write the code according to the next interface:

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); // Insert number val to Binary Search Tree
  void InOrder(void); // Print the elements of Binary Search Tree in InOrder Traversal
  void InvertTree(void); // Invert a Binary Search Tree
};

You can create (use) additional methods if needed.

Input

The first line contains number (1 \leq n \leq 100). The second line contains integers.

Output

Create the Binary Search Tree from input data. Invert a tree using InvertTree method. Print the elements of Binary Search Tree after inversion using InOrder method.

Examples

Example 1

Loading
Loading