У меня есть BST и вы хотите закрепить дерево, как только будет достигнута определенная глубина. Когда я пытаюсь пересечь дерево, я сталкиваюсь с NullPointerException
, устанавливая узлы за глубиной нулевой.Рекурсивно удалять BST
Является ли моя логика правильной с тем, что я здесь делаю? Это кажется довольно простой проблемой, но я не могу понять, что вызывает эту ошибку.
public void clip(int d) {
int counter = 0;
clip_helper(d, root, counter);
}
public void clip_helper(int depth, Node n, int c) {
if (n != null) {
c++;
if (c == depth) {
n.left = null;
n.right = null;
}
}
clip_helper(depth, n.left, c);
clip_helper(depth, n.right, c);
}
* Следует также добавить, что я довольно новичок в рекурсивных решениях, поэтому мне может быть что-то явно очевидное.