【LeetCode】Balanced Binary Tree(平衡二叉树)
程序员文章站
2024-03-19 19:04:58
...
这道题是LeetCode里的第110道题。
题目要求:
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
示例 1:
给定二叉树
[3,9,20,null,null,15,7]
3 / \ 9 20 / \ 15 7返回
true
。
示例 2:给定二叉树
[1,2,2,3,3,null,null,4,4]
1 / \ 2 2 / \ 3 3 / \ 4 4返回
false
。
判断根节点左右子树的最大深度是否符合题意就行了,求最大深度请看这里。
解题代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isBalanced(TreeNode* root) {
if(root==NULL)return true;
int l_len=Depth(root->left);
int r_len=Depth(root->right);
if(abs(l_len-r_len)<=1&&
isBalanced(root->left)&&
isBalanced(root->right))
return true;
return false;
}
int Depth(TreeNode* root){
if(root==NULL)return 0;
return max(Depth(root->left),Depth(root->right))+1;
}
};
提交结果:
个人总结:
这道题用迭代法似乎挺难的还没具体的思路,如果树的深度越深,则开销就越大,要处理的左右子树也很多。
推荐阅读
-
【LeetCode】Balanced Binary Tree(平衡二叉树)
-
leetcode--minimum-depth-of-binary-tree
-
[Leetcode][python]Minimum Depth of Binary Tree
-
111. Minimum Depth of Binary Tree 二叉树的最小深度
-
LeetCode:102.Binary Tree Level Order Traversal
-
LeetCode 662 Maximum Width of Binary Tree 二叉树的最大宽度
-
[leetcode]662. Maximum Width of Binary Tree(Python)
-
Leetcode Maximum Depth of Binary Tree
-
leetcode【104】Maximum Depth of Binary Tree
-
LeetCode------Maximum Depth of Binary Tree