Как вы рассчитываете количество ветвей, в данном случае ветвей с четными целыми числами. Вот что я до сих пор. Кажется, это работает для нескольких случаев.Печать ветвей на двоичном дереве
public int evenBranches() {
return evenBranches(overallRoot);
}
private int evenBranches(IntTreeNode root) {
if (root == null) {
return 0;
}
int val = 0;
if (root.left != null) {
val += evenBranches(root.left);
} else if (root.right != null) {
val += evenBranches(root.right);
}
if (root.data % 2 == 0) {
return val + 1;
} else {
return val;
}
}
Я не понимаю вопрос название, «Печать филиалов»? «Подсчет» наверняка? – weston
«Кажется, это работает для нескольких случаев». Итак, какие случаи, и я предполагаю, что вы нашли случай, для которого это не работает, что это? – weston
Подсказка: это хорошая возможность узнать об модульном тестировании. И даже если вы не используете JUnit, все равно стоит подумать о том, чтобы написать небольшие кусочки тестового кода. Вы знаете: как генерировать выделенные деревья с известным макетом, а затем запускать на нем свой код и проверять возвращаемые числа. Начните с небольших примеров, и когда что-то пойдет не так, вы можете запустить этот тест в отладчике. Так вы систематически решаете такие проблемы. Кроме того: пожалуйста, обратитесь в справочный центр, чтобы понять «недостающие части» в вашем вопросе. – GhostCat