Given a binary tree, your task is to complete the function **binaryTreeToBST** which converts the binary tree to binary search tree(BST) and returns the root of the converted binary search tree.

**Note :** The conversion must be done in such a way that keeps the original structure of Binary Tree.

1

/ \

2 3

/

4

For the tree above the converted tree will be

3

/ \

2 4

/

1

**Input:**

The task is to complete the method which takes one argument, root of Binary Tree and returns the root of the new converted binary search tree.There are multiple test cases. For each test case, this method will be called individually.

**Output:**

The output will be the inorder traversal of the the converted binary search tree .

**Constraints:**

1 <=T<= 30

1 <= Number of nodes<= 20

**Example(To be used only for expected output):
Input:**

2

2

1 2 R 1 3 L

4

10 20 L 10 30 R 20 40 L 20 60 R

**Output:**

1 2 3

10 20 30 40 60

There are two test cases. First case represents a tree with 3 nodes and 2 edges where root is 1, left child of 1 is 3 and right child of 1 is 2. Second test case represents a tree with 4 edges and 5 nodes.

**Note:**The **Input/Ouput** format and **Example** given above are used for system's internal purpose, and should be used by a user for **Expected Output** only. As it is a function problem, hence a user should not read any input from stdin/console. The task is to complete the function specified, and not to write the full code.

Author: Shubham Joshi 1

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.

Login to report an issue on this page.