**Compilation/Execution Result:**

Given a Binary Search Tree of size **N,** that may be unbalanced. Your task is to complete the function **buildBalancedTree()**, that convert the given BST into a balanced BST that has minimum possible height.

Examples :

```
Input:
30
/
20
/
10
Output:
20
/ \
10 30
Input:
4
/
3
/
2
/
1
Output:
3 3 2
/ \ / \ / \
1 4 OR 2 4 OR 1 3 OR ..
\ / \
2 1 4
```

**Input:**

The function takes a single argument as input, the reference pointer to the root of the Binary Search Tree.

There are **T**, test cases and for each test case the function will be called separately.

**Output:**

For each test case output will be the new height of the BST.

**Constraints:**

1<=T<=100

1<=N<=200

**Example:
Input:**

2

3

30 20 10

5

10 8 7 6 5

2

3

**Note:**The **Input/Ouput** format and **Example** given 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.

SANJAY5797 | 145 |

Himanshusinghchauhan | 120 |

iharshitmittal | 106 |

Lam Ngoc Pham | 105 |

rishusinha | 103 |

Shashank_Pathak | 652 |

dark_knights | 560 |

surbhi_7 | 556 |

SANJAY5797 | 453 |

Vasudha Gupta | 377 |

akhayrutdinov | 4161 |

sanjay05 | 3633 |

Quandray | 2833 |

Ibrahim Nash | 2524 |

Michael Riegger | 2308 |