Здравствуйте, это мой метод isBalanced и соответствующие помощники.
public boolean isBalanced() {
return isBalancedHelper(root);
}
public boolean isBalancedHelper(Node node) {
if(node == null) {
return true;
}
int heightDif = height(node.left) - height(node.right);
if(Math.abs(heightDif) > 1) {
return false;
}
else {
return isBalancedHelper(node.left) && isBalancedHelper(node.right);
}
}
public int height(Node node) {
if(node == null) {
return 0;
}
return 1 + Math.max(height(node.left), height(node.right));
}
У меня нет тестов, чтобы он проваливался, потому что он в авторейдере, но в выходном сообщении об этом сказано.
isBalanced () возвращает истину, когда левый потомок не равен нулю, а правый равен нулю.
Я смотрю на это некоторое время и не могу понять, почему это не такза работой.Есть предложения?