Construct a Full Binary Tree
Submissions: 484   Accuracy:

48.37%

  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


Need help with your code? Please use ide.geeksforgeeks.org, generate link and share the link here.

to report an issue on this page.