Я пишу метод, чтобы определить, заполнено ли двоичное дерево, вот что у меня есть:
public boolean full(){
return fullHelper(this);
}
public boolean fullHelper(BinaryTreeNode<T> node){
if (node == null){return false;}
if (node.left == null && node.right == null){return true;}
if (node.left != null && node.right != null){
return fullHelper(node);
}
return false;
}
Узел, который вы проходите, может быть корневым или каким-либо произвольным узлом, который будет проверять, заполнено ли поддерево. Мой метод застревает на линии
return fullHelper(node);
Мне было интересно, почему он не пройдет через строку над ним, чтобы проверить, равны ли оба ребенка нулю. Я довольно плохо знаком с бинарными деревьями и рекурсией в целом, поэтому, если кто-нибудь сможет объяснить какие-то неправильные предположения, которые я сделал, это будет с благодарностью!