/** * 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,int &h){//h是高度
if(!root) {h=0;return true;}
int hl,hr;
return isBalanced(root->left,hl) && isBalanced(root->right,hr) && (h=max(hl+1,hr+1),abs(hl-hr)<=1);
}
bool isBalanced(TreeNode* root) {
int h;
return isBalanced(root,h);
}
};
相关文章
- LeetCode 654.最大二叉树
- LeetCode 111.二叉树的最小深度
- leetcode 124. 二叉树中的最大路径和
- 练习题目-平衡二叉树
- LeetCode-101. 对称二叉树(java)
- LeetCode-110. 平衡二叉树(java)
- 平衡二叉树(AVL)各种操作详细分析
- leetcode-二叉树展开为链表
- [LeetCode] Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序遍历建立二叉树
- LeetCode 637. Average of Levels in Binary Tree二叉树的层平均值 (C++)