题目:
class Solution {
public:
int getHeight(TreeNode* cur){ //递归函数返回的是以当前节点为根节点的高度。
if(!cur) return 0; //空节点的高度为0
int leftHeight = getHeight(cur->left); //取得左节点的高度
if(leftHeight==-1) return -1; //如果左右节点不是平衡二叉树了则返回-1
int rightHeight = getHeight(cur->right);
if(rightHeight==-1) return -1;
return abs(leftHeight-rightHeight)>1?-1: 1+max(leftHeight, rightHeight); //如果左右节点高度差大于1说明不是平衡二叉树,返回-1;如果是平衡二叉树,则计算当前节点为根节点的树的高度,即左右子树中的最大高度+1
}
bool isBalanced(TreeNode* root) {
return getHeight(root)==-1?false:true;
}
};
以上方法转自代码随想录
分类:
算法编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具