Я должен реализовать рекурсивный метод, который подсчитывает количество левых дочерних узлов дерева. Мой код на данный момент:
private int countLeftNodes(IntTreeNode node){
int c = 0;
if (node != null){
c = 1 + countLeftNodes(node.left);
countLeftNodes(node.right);
}
return c;
}
Возвращает число намного меньшее, чем должно быть. У меня ощущение, что мой обход отключен, потому что он, кажется, считает только самые левые дочерние узлы, а затем завершается. Когда я вызываю этот метод в IntTree размера 16, я должен получить 8 левых дочерних узлов, 7 правых дочерних узлов и один корень, но вместо этого я получаю 4 левых дочерних узла.