Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
public TreeNode sortedArrayToBST(int[] num) {
// Start typing your Java solution below
// DO NOT write main() function
if (num == null || num.length <= 0) {
return null;
}
return dfs(num, 0, num.length - 1);
}
TreeNode dfs(int[] num, int min, int max) {
TreeNode node = null;
if (min <= max) {
int mid = (max + min) / 2;
node = new TreeNode(num[mid]);
TreeNode left = dfs(num, min, mid - 1);
TreeNode right = dfs(num, mid + 1, max);
node.left = left;
node.right = right;
}
return node;
}