1.力扣104。二叉树的最大深度-. - 力扣(LeetCode)
2.力扣110。平衡二叉树->. - 力扣(LeetCode)
1.
叶子结点 指:没有子节点的节点
思路:
求其 左子树和右子树的最大深度,返回其中最大值即可
代码实现:
int maxDepth(struct TreeNode* root)
{
if(root==NULL)
return 0;
int rightDepth=maxDepth(root->right);
int leftDepth=maxDepth(root->left);
return rightDepth>leftDepth?rightDepth+1:leftDepth+1;
}
2.
左子树和右子树 都是平衡二叉树。
左右子树 高度之差的绝对值 不超过1。
代码实现:
int maxDepth(struct TreeNode* root)
{
if(root==NULL)
return 0;
int rightDepth=maxDepth(root->right);
int leftDepth=maxDepth(root->left);
return rightDepth>leftDepth?rightDepth+1:leftDepth+1;
}
bool isBalanced(struct TreeNode* root)
{
if(root==NULL)
return true;
int leftDepth=maxDepth(root->left);
int rightDepth=maxDepth(root->right);
return abs(leftDepth-rightDepth)<2 //绝对值
&&isBalanced(root->left)&&isBalanced(root->right);
}
感谢观看