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 **T **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<=10^{3}

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

1 0 2

4 2 5 1 6 3 7

Author: harshitsidhwa

:p | 491 |

Anshul Wadhawan | 414 |

Shivam_Kumar_Singh | 316 |

facelessman_x | 312 |

Calahan | 295 |

Anshul Wadhawan | 874 |

rambo | 868 |

Calahan | 816 |

Suraj Kumar 14 | 792 |

fullmetal27 | 758 |

akhayrutdinov | 4698 |

Ibrahim Nash | 3664 |

sanjay05 | 3633 |

Quandray | 3543 |

surbhi_7 | 2748 |