当前位置:网站首页>Leetcode 110. 平衡二叉树
Leetcode 110. 平衡二叉树
2022-07-23 01:34:00 【LuZhouShiLi】
Leetcode 110. 平衡二叉树
题目
给定一个二叉树,判断它是否是高度平衡的二叉树。
思路
- 明确递归函数的参数和返回值:参数是传入的节点指针,返回值是以该节点为根节点的二叉树的高度
- 明确终止条件:遇到空节点返回0,表示以当前节点为根节点的树高度是0
- 明确单层递归逻辑:判断左右子树高度之差,如果差值小于或者等于1,返回当前二叉树的高度
代码
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution {
public:
// 返回以该节点为根节点的二叉树高度
int getDepth(TreeNode *node)
{
if(node == NULL)
{
return 0;
}
int leftDepth = getDepth(node->left);
if(leftDepth == -1)
{
return -1;// 说明左子树已经不是平衡二叉树
}
int rightDepth = getDepth(node->right);
if(rightDepth == -1)
{
return -1;// 说明右子树已经不是平衡二叉树
}
return abs(leftDepth - rightDepth) > 1 ? -1 : 1 + max(leftDepth,rightDepth);
}
bool isBalanced(TreeNode* root) {
return getDepth(root) == -1 ? false:true;
}
};
边栏推荐
猜你喜欢
随机推荐
2302. Count the number of subarrays with a score less than k - sliding array - double hundred code
网站建设开始前要考虑的7个问题
Solve the greatest common divisor and the least common multiple
1057 Stack
2022.7.22-----leetcode.757
EasyV半年度“官方网站热门内容”排行榜盘点
A ConvNet for the 2020s 论文阅读
Amplitude limiting and deblocking filtering of botu PLC signal processing series
Event listening and deleting events - event object - default event - cancel bubbling event - event delegation - default trigger
REPEATABLE-READ RR模式区间锁
BCG 使用之CBCGPColorDialog控件
动态设置小程序的navigationBarTitleText
BGP機房的優點
不同类型的字段、集合list/set/map、对象如何判空null
服务器托管、服务器租用、云主机各自的优势
Vs Code shortcut key settings
[C language] file operation
程序员不会 jvm?骨灰级工程师:全等着被淘汰吧!这是必会技能!
如何高效系统学习 MySQL?
VS2022中出现const char* 无法赋值 char*









