これはすでにここで議論されていますが、私は以下の実装を持っています (これはスレッドでは決して議論されませんでした),
public boolean isBalanced(BSTNode node) {
if(maxHeight() > (int)(Math.log(size())/Math.log(2)) + 1)
return false;
else
return true;
}
ここで、maxHeight() はツリーの最大の高さを返します。基本的に、maxHeight > log(n) かどうかを確認しています。ここで、n はツリー内の要素の数です。これは正しい解決策ですか?