检查二叉树是不是平衡[关闭]
Posted
技术标签:
【中文标题】检查二叉树是不是平衡[关闭]【英文标题】:Check If Binary Tree Is Balanced [closed]检查二叉树是否平衡[关闭] 【发布时间】: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));
将永远没有机会执行
【参考方案1】:
if (Math.abs(left-right) <= 1) return true; else return false;
将始终为return
某事,这意味着您将永远无法进行递归调用。
【讨论】:
以上是关于检查二叉树是不是平衡[关闭]的主要内容,如果未能解决你的问题,请参考以下文章