打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
判断一颗二叉树是否为平衡二叉树
采用后序遍历的方法(关于树的相关算法多考虑前序、中序、后序、深度优先、广度优先算法,试图找到与题目之间的关系)。
通过后序遍历的方式,在遍历的过程中记录每个节点的深度,然后父节点通过子节点的深度,算出自己的深度,当左右子树的深度之差的绝对值大于1时,跳出循环,否则继续比较。
public boolean isBalanced(TreeNode *pRoot,int *pdepth){
 if(pRoot==null)
{
    *pdepth=0;
    return true;
}
int *left,*right;
if(isBalanced(pRoot->left,left)&&isBalanced(pRoot->right,right))
{
    int sub=*left-*right;
    if(sub>=-1&&sub<=1)
    {
     *pdepth=max(*left,*right)+1;
      return true;
     }
}
return false;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
剑指offer 39 平衡二叉树
轻松搞定面试中的二叉树题目
二叉树的各种操作
二叉树
剑指offer(C++)-JZ79:判断是不是平衡二叉树(数据结构-树)
二叉树先序中序后序三种遍历的非递归算法|二叉树,先序,中序,后序遍历,非递归算法-中国源码...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服