У меня проблема с домашним заданием, и я выполнил все методы, кроме этого, isPerfectlyBalanced()
.
Все мои тесты пройдены, кроме одного, которое должно вернуть false
, но вместо этого возвращает true
. Я приложил свой текущий код и тест, который не проходит. Любое описание того, как это сделать, или даже дайте мне знать, где мой код неправильный, приветствуется!
private boolean isPerfectlyBalanced(Node node) {
if (node == null) {
return true;
}
if(size(node.left) == size(node.right)) {
return true;
}
isPerfectlyBalanced(node.left);
isPerfectlyBalanced(node.right);
return false;
}
public boolean isPerfectlyBalancedS() {
// TODO
if (root == null) {
return true;
}
return isPerfectlyBalanced(root);
}
Вот мой тест, который не проходит:
assertFalse(set.isPerfectlyBalancedS());
Спасибо!
Метод моего размера:
private int size(Node node){
if (node == null){
return 0;
} else {
return (size(node.left) + 1 + size(node.right));
}
}
public int size() {
// TODO
return size(root);
}