元の質問はここに添付されていますhttps://leetcode.com/problems/balanced-binary-tree/description/Leetcode 110.バランスの取れたバイナリツリー解決策が間違っている理由を聞かせますか?
public class BalancedBinaryTree {
static boolean balance = true;
public boolean isBalanced(TreeNode root) {
if (root == null)
return true;
return (Math.abs(depth(root.left) - depth(root.right)) <= 1) && balance;
}
public int depth(TreeNode root) {
if (balance) {
if (root == null)
return 0;
int lengthOfLeft = depth(root.left);
int lengthOfRight = depth(root.right);
if (Math.abs(lengthOfLeft - lengthOfRight) > 1) {
balance = false;
}
return Math.max(lengthOfLeft, lengthOfRight) + 1;
} else {
return 0;
}
}
あなたのコードは何ですか?あなたの質問に関連する言語タグを追加してください。 –
あなたはたぶんこれをhttps://codereview.stackexchange.com/ –
に投稿してください。int lengthOfLeftは常に0になります。前の値も追加する必要がありますか? –