У меня есть следующий код, но он выдает ошибку, когда я вызываю мой метод "sortedArrayToBST", как мне это исправить?
public static <E> BTree<E> taulukostaPuu(ArrayList<E> L) {
BTree<E> T = new BTree<E>();
sortedArrayToBST(L,T); <-----gives error here.
return T;
}
private static <E extends Comparable<? super E>>
BTree<E> sortedArrayToBST(ArrayList<E> l, BTree<E> t) {
if(t.getRoot() == null) {
t.setRoot(new BTreeNode<E>(l.get(0)));
}
for(int i = 0 ; i < l.size(); i++) {
E q = l.get(i);
BTreeNode<E> p = t.getRoot();
while(true)
{
if(q.compareTo(p.getElement()) <= 0)
{
if(p.getLeftChild() == null)
{
p.setLeftChild(new BTreeNode<E>(q));
break;
}
else
p = p.getLeftChild();
}
else if(q.compareTo(p.getElement()) > 0)
{
if(p.getRightChild() == null)
{
p.setRightChild(new BTreeNode<E>(q));
break;
}
else
p = p.getRightChild();
}
}
}
return t;
}
Я хотел бы сохранить эту структуру. Я использую пользовательский импорт, содержащий getLeftChild () и т. Д., Который должен быть довольно прост для понимания.
Также, если есть в любом случаесделайте это полным за линейное время, это было бы здорово.Я уверен, что он не так эффективен, как O (n).