您的位置:首页 > 娱乐 > 明星 > 网页设计与制作教程杨选辉_教育培训网络推广培训_太原百度快速优化排名_佛山快速排名

网页设计与制作教程杨选辉_教育培训网络推广培训_太原百度快速优化排名_佛山快速排名

2024/10/9 23:30:47 来源:https://blog.csdn.net/m0_56332819/article/details/142729275  浏览:    关键词:网页设计与制作教程杨选辉_教育培训网络推广培训_太原百度快速优化排名_佛山快速排名
网页设计与制作教程杨选辉_教育培训网络推广培训_太原百度快速优化排名_佛山快速排名

利用二叉树遍历的思想编写一个判断二叉树,是否为平衡二叉树

示例 :

输入:root = [3,9,20,null,null,15,7]
输出:true

思想:

代码:

int getDepth(struct TreeNode* node) {//如果结点不存在,返回0if(node==NULL)return 0;//求出右子树深度int rightDepth = getDepth(node->right);//求出左子树深度int leftDepth = getDepth(node->left);//返回左右子树中的较大值+1return rightDepth > leftDepth ? rightDepth + 1 : leftDepth + 1;
}bool isBalanced(struct TreeNode* root) {//递归结束条件为:传入结点为NULL,返回Trueif(root==NULL)return true;//求出左右子树的深度int leftDepth = getDepth(root->left);int rightDepth = getDepth(root->right);//若左右子树绝对值差距大于1,返回Falseif(abs(leftDepth - rightDepth) > 1 )return false;//检查左右子树是否为平衡二叉树return isBalanced(root->right) && isBalanced(root->left);
}

时间复杂度O(n);空间复杂度O(1) 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com