Вот код, который у меня есть до сих пор, я думал, что он возвращал его из функции, если бы мое условие не выполнялось, работало бы, но его стек переполнялся ... Я знаю, что мне нужно установить базовый код, но на самом деле не так .. ..Как написать базовый регистр для этой рекурсивной функции, которая удаляет дочерние узлы, содержащие нечетные ключи?
public void removeOddSubtrees() {
if (root == null) {
return;
}
removeOddSubtrees(root);
}
private void removeOddSubtrees(Node root) {
removeOddSubtrees(root);
if (root.key % 2 != 0) {
root.right = null;
root.left = null;
root = null;
} else {
return;
}
}
Итак, в чем проблема? Где говорится, что это исключение? (Почему вы вызываете рекурсивный метод * до того, как вы определили, является ли это нечетным ключом?) – Makoto
У меня нет базового кода, я не думаю ... исключение находится на «removeOddSubtrees (root)» – gorgatron