Я пишу код для баланса несбалансированного BST. Сначала я создал отсортированный ArrayList из несбалансированного BST. До этого все нормально.
После этого я попытался создать сбалансированный BST из отсортированного ArrayList, но недавно созданный BST включает в себя только половину элементов (узлов) ArrayList. root было изменено на правильное.
Я искал и читал много решений, касающихся балансировки BST, но не смог найти подходящее для моей проблемы. Я был бы очень признателен за совет , Спасибо.
public BinaryTreeNode<Integer> BalanceBST(ArrayList<Integer> list, int min, int max)
{
if (max <= min)
{
return null;
}
int mid = (min + max) / 2;
BinaryTreeNode<Integer> root = new BinaryTreeNode<Integer>(list.get(mid));
root.setLeft(arrayListToBST(list, min, mid - 1));
root.setRight(arrayListToBST(list, mid + 1, max));
return root;
}