剑指Offer(牛客版)--面试题55:二叉树平衡树
Posted 汤姆鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer(牛客版)--面试题55:二叉树平衡树相关的知识,希望对你有一定的参考价值。
关
注
关注精彩内容
请先点击蓝字关注!
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
//声明一个变量,表示高度
int pDepth = 0;
//调用函数判断是否为平衡子树
return IsBalanced(pRoot, &pDepth);
}
private:
bool IsBalanced(TreeNode* pRoot, int* pDepth)
{
//如果当前节点为空
if(pRoot == nullptr)
{
*pDepth = 0;
return true;
}
//声明两个变量 left ,right;表示左右子树的高度
int left, right;
//递归调用函数判断左右子树是否为平衡树,并计算左右子树的高度
if(IsBalanced(pRoot->left,&left) && IsBalanced(pRoot->right,&right))
{
//计算左右子树的高度差
int value = left - right;
//如果高度差在[-1,1]
if(value <= 1&& value >= -1)
{
*pDepth = 1 + ((left > right)? left : right);
return true;
}
}
//如果左右都不为平衡树
return false;
}
};
长按二维码识别关注
Change,There is no better way!
技术、理想、生活、远方
留下您的足迹,再走呗!
以上是关于剑指Offer(牛客版)--面试题55:二叉树平衡树的主要内容,如果未能解决你的问题,请参考以下文章