Я работаю над вопросом кодирования и сейчас немного растерялся.Если мне дан массив, который представляет уровень порядка обхода двоичного дерева.Как мне построить дерево из этого?
Пока здесь мой мыслительный процесс: я знаю, что индекс 0th
это root
, leftChild = 2*i+1
и rightChild = 2*i+2
.
Вот что у меня есть, и я не думаю, что это правильно:
public Tree buildTree(ArrayList<Tree> arr, int i) {
if (i > list.size() - 1) {
return null;
}
root = list.get(i);
root.LeftChild = buildTree(arr, 2*i+1);
root.RightChild = buildTree(arr, 2*i+2);
return root;
}
мой i
начинается с 0, спасибо.