【发布时间】:2021-09-24 08:06:54
【问题描述】:
这是我的错误答案。我还在对递归感到困惑,为什么我不能把true和false放在一起,而不是把true放在开头?
public class Solution {
public boolean isBalanced(TreeNode root) {
int left = findHeight(root.left);
int right = findHeight(root.right);
if (Math.abs(left-right) <= 1) {
return true;
} else {
return false;
}
return (isBalanced(root.left)&&isBalanced(root.right));
}
private int findHeight(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(findHeight(root.left), findHeight(root.right)) + 1;
}
}
这是正确的答案。
public boolean isBalanced(TreeNode root) {
if (root==null) {
return true;
}
int leftHeight = findHeight(root.left);
int rightHeight = findHeight(root.right);
if(Math.abs(leftHeight-rightHeight)>1) {
return false;
}
return isBalanced(root.left)&&isBalanced(root.right);
}
【问题讨论】:
-
return (isBalanced(root.left)&&isBalanced(root.right));将永远没有机会执行
标签: java recursion binary-tree