Я пытаюсь найти средний элемент или индекс массива, затем получить середину каждой половины, и так далее ...
так скажем у нас есть [0,1,2,3,4,5,6,7,8,9,10,11,12,13]
что я ожидаю 7, 3, 1, 0, 2, 5, 4, 6 ...
Таким образом, когда я добавляю элементы из нового массива, я получаю сбалансированный BST
- начало: начальный индекс (0)
- конец: длина - 1
- nums: список чисел для добавления
- b: дерево, которое будет вставлено в
Код:
public static BST fillBST(BST b, List<Integer> nums, int start, int end) {
int mid = (start + end) / 2;
if (start > end)
b.insertt(nums.get(mid));
else {
fillBST(b, nums, start, mid - 1);
fillBST(b, nums, mid + 1, end);
}
return b;
}
вывод Я получаю список использования [0,31]: 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31