Showing:
Handle Score
@Ibrahim Nash 6560
@mb1973 5777
@Quandray 5271
@akhayrutdinov 5111
@saiujwal13083 5074
@kirtidee18 4356
@sanjay05 3762
@mantu_singh 3638
@gfgaccount 3601
@marius_valentin_dragoi 3525
Construct a Full Binary Tree
Medium Accuracy: 49.73% Submissions: 2110 Points: 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