Учитывая BST, мне нужно найти количество левых узлов дерева.
Пример: `
+---+
| 3 |
+---+
/ \
+---+ +---+
| 5 | | 2 |
+---+ +---+
/ / \
+---+ +---+ +---+
| 1 | | 4 | | 6 |
+---+ +---+ +---+
/
+---+
| 7 |
+---+`
Ответ должен быть 4, так как (5, 1, 4, 7) - все левые узлы дерева.
Я думаю о следующем:
public int countLeftNodes() {
return countLeftNodes(overallRoot, 0);
}
private int countLeftNodes(IntTreeNode overallRoot, int count) {
if (overallRoot != null) {
count += countLeftNodes(overallRoot.left, count++);
count = countLeftNodes(overallRoot.right, count);
}
return count;
}
Я знаю это неправильно, но я не знаю почему. Может ли кто-нибудь объяснить почему, а также помочь мне с ответом.