Construct a Full Binary Tree
##### Submissions: 1464   Accuracy: 43.61%   Difficulty: Medium   Marks: 4

Given two arrays that represent Preorder traversals of a Full binary tree preOrder[] and its mirror tree preOrderMirror(), your task is to complete the function constructBinaryTree(), that constructs the full binary tree using these two Preorder traversals.

Examples:

```Input :  preOrder[] = {1,2,4,5,3,6,7}
preOrderMirror[] = {1,3,7,6,2,5,4}

Output :          1
/    \
2      3
/   \   /  \
4     5 6    7
```

Note: It is not possible to construct a general binary tree using these two traversal. But it is possible to create a full binary tree using the above traversals without any ambiguity. For more details refer to this article.

Input:
The function takes three arguments as input, first the array that represent Preorder traversals of a Full binary tree preOrder[], second the array that represents the preorder traversal of its mirror tree preOrderMirror() and last the size of both the array.
There will be test cases and for each test case the function will be called separately.

Output:
For each test case the function must return the root to the new binary tree formed. Ouput will be the inorder traversal of the binary tree.

Constraints:
1<=T<=500
1<=N<=103

Example:
Input:

2
3
0 1 2
0 2 1
7
1 2 4 5 3 6 7
1 3 7 6 2 5 4
Output:
1 0 2
4 2 5 1 6 3 7

#### ** For More Input/Output Examples Use 'Expected Output' option **

Contributor: Harshit Sidhwa
Author: harshitsidhwa

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.