我有这个作业问题,我已经完成了除这个之外的所有方法,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);
}
Run Code Online (Sandbox Code Playgroud)
这是我失败的测试:
assertFalse(set.isPerfectlyBalancedS());
Run Code Online (Sandbox Code Playgroud)
谢谢!
我的尺码方法:
private int size(Node node){
if (node == null){
return 0;
} else {
return (size(node.left) + 1 + size(node.right));
}
}
public int size() { …Run Code Online (Sandbox Code Playgroud)