110. 平衡二叉树
✅做题思路or感想:
-
用递归后序遍历二叉树,然后从底部开始记录高度为0,然后往上加1。
-
每一次操作节点的时候比较左右子树的高度,如果有一棵树不符合条件,则直接把-1返回到最顶的根节点
-
class Solution { public: int getDepth(TreeNode* cur) { if (cur == nullptr)return 0; //节点触底后,从高度为0开始计数 //检验左右子树是否符合条件 int leftDepth = getDepth(cur->left); if (leftDepth == -1) return -1; int rightDepth = getDepth(cur->right); if (rightDepth == -1)return -1; if (abs(leftDepth - rightDepth) > 1)return -1; else { //若符合条件,则往上+1 return max(leftDepth, rightDepth) + 1; } } bool isBalanced(TreeNode* root) { if (getDepth(root) != -1)return true; else return false; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端