leetcode222.完全二叉树的节点个数
题目描述:给出一个完全二叉树,求出该树的节点个数。
分析:直接遍历确实很方便。但如果想要快一点就可以从完全二叉树这个点上优化,因为完全二叉树只有高度为1的这一层缺少节点数。只用通过比对节点下的左右子树高度,如果高度一样就返回2<<高度,否则就继续向下寻找。
leetcode110.平衡二叉树
题目描述:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
分析:直接向下遍历,然后逐层返回节点的最大深度就行了。
class Solution {
public:
int res=0;
int cal(TreeNode *node)
{
if(!node)return 0;
int ld=cal(node->left);
if(ld==-1)return -1;
int rd=cal(node->right);
if(rd==-1)return -1;
if(abs(ld-rd)>1)return -1;
else return ld>rd?ld+1:rd+1;
}
bool isBalanced(TreeNode* root) {
if(!root)return true;
res=cal(root);
return res>0?true:false;
}
};