Метод должен принимать два параметра по одному для глубины и один для целочисленного значения корня дерева. Например: для любого заданного N возвращает корневую ссылку полного дерева двоичного поиска с глубиной N, так что узлы хранят целые числа 1, 2, ..., 2 N + 1 - 1. Я изо всех сил пытаюсь это понять. Вот что у меня есть:Генерирование полного двоичного дерева рекурсивно через метод Java
public static BinaryNode BSTFactory(int top,int depth) {
BinaryNode root=new BinaryNode(null,null,top);
BinaryNode leftChild,rightChild;
if(depth==0){
return root;
}
if(depth==1){
//create 2 children left and right
leftChild=new BinaryNode(null,null,top-1);
rightChild=new BinaryNode(null,null,top+1);
root=new BinaryNode(rightChild,leftChild,top);
return root;
}
if(depth>1){
leftChild=BSTFactory(top-1,depth-1);
rightChild=BSTFactory(top+1,depth-1);
root=new BinaryNode(rightChild,leftChild,top);
return root;
}
return root;
}
Что происходит? Что вы ожидаете? – StilesCrisis
Метод работает для 2 базовых корпусов, которые равны 0 и 1 для глубины, но это не будет работать ни для чего большего. Я, должно быть, что-то бормочу с рекурсией, но я не могу понять, что это такое. – sudoMan13
Вы знаете, как использовать отладчик? Вам нужно просто пропустить код и посмотреть, что происходит. – StilesCrisis