1.先给出树节点信息

typedef struct tree{struct tree *lchild;struct tree *rchlid;int data;
}tree,* Bitree;

2.原理

判断一棵树是否为平衡二叉树,要满足每个节点的左右子树的高度之差的绝对值不大于1。

因此,我们这里可以比较每个节点的左右字数高度,判断他们差的绝对值是否满足平衡二叉树的条件即可

3.算法

求二叉树高度算法

int length_tree(Bitree T)

{

if(T!=NULL)

{

return 1+max(length_tree(T->lchild),length_tree(T->rchild)));  //递归求节点高度

}

else

return 0;    //空树返回0

}

然后再就是判断每个节点的左右子树高度操作了

int judge_tree(Bitree T)

{

int llength,rlength;      //定义左右节点高度

if(T!=NULL)

{

llength=length_tree(T->lchild);

rlength=length_tree(T->rchild);

if(abs(llength-rlength)>0)     //判断绝对值是否大于1

{return 0;}

return judge_tree(T->lchild)*judge_tree(T->rchild);          //注意这里是乘法,只要出现0,就不符合条件

}

else

return 1;          //T为空返回1,这个也符合条件

}

4.以上差不多已经可以实现判断操作了,如要编写成程序,自己稍加修改下即可。

判断一棵二叉树是否为平衡二叉树相关推荐

  1. 数据结构与算法之二叉树的序列化和反序列化及判断一棵树是否为平衡二叉树

    数据结构与算法之二叉树的序列化和反序列化及判断一棵树是否为平衡而二叉树 目录 二叉树的序列化和反序列化 判断一棵树是否为平衡而二叉树 1. 二叉树的序列化和反序列化 1. 递归版本序列化和反序列化 代 ...

  2. leetcode 110 --- 判断给定的二叉树是否是平衡二叉树

    1 题目 判断给定的二叉树是否是平衡二叉树 平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1. 一颗树的高度指的是树的根节点到所有节点的距离中的最大值. 2 解 ...

  3. python代码判断两棵二叉树是否相同

    python代码判断两棵二叉树是否相同 给定两个二叉树,编写一个函数来校验它们是否相同.如果两个树在结构上相同,并且结点具有相同的值,则认为它们是相同的. 判断两个二叉树是否是相同的,相同的依据是 二 ...

  4. 牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C++题解/答案

    牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C++题解/答案 题解: 搜索二叉树满足以下性质: 1.非空左子树的所以键值小于其根节点的键值 2.非空右子树的所有键值大于其根节点的键值 ...

  5. 判断一棵二叉树是否为完全二叉树-Java

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net package live.every.day.Pro ...

  6. Python算法——判断两棵二叉树是否相等

    要求: 如何判断两颗树是否相等?(两棵树相等是指这两课树有着相同的结构,并且在相同位置上的结点有相同的值) 分析: 如果两颗二叉树root1, root2相等, 那么root1和root2结点的值相同 ...

  7. 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)

    平衡二叉树的解法:主要是求出二叉树的高度,若根节点的左子树的高度与右子树的高度差小于等于1,则表示该二叉树为平衡二叉树 public static class Node{public int valu ...

  8. 【面试】判断一棵二叉树是否为二叉排序树

    一.描述 给定一棵二叉树,如何判断一棵树是否是二叉排序树.给出树结点定义如下 class TreeNode {int key;TreeNode left;TreeNode right;public T ...

  9. 判断两棵二叉树是否同构,三种实现方式(递归、队列、堆栈)

    一.同构的概念: 给定两棵二叉树 T1 和 T2,如果T2可以通过若干次左右孩子互换就变成T1,那么我们称这两棵树是同构的 例1:下图两棵树同构,因为对T2,交换A左右孩子:交换B左右孩子,交换G左右 ...

最新文章

  1. WEB-INF目录下登录表单提交的重定向
  2. Ipad 日程管理APP使用心得
  3. 前端学习(2367):两种方式导航跳转和传参
  4. require mysql.php_require和include经典一例抛析_php
  5. h5网页小游戏php源码,H5 组词小游戏源代码
  6. Spark算子:RDD行动Action操作–aggregate、fold、lookup;reduce/fold/aggregate区别
  7. 计算机if函数自动填充,Excel表格函数怎么能实现自动填充-excel填充函数,excel表格根据公式自动填充...
  8. 技术内幕 | StarRocks Pipeline 执行框架(下)
  9. 第六章 使用scikit-learn构建模型
  10. 视频教程-SpringBoot Web项目案例视频课程-Java
  11. 黄金etf持仓量如何算
  12. Tuxera NTFS for Mac:验证密钥时出错及彻底删除Tuxera ntfs
  13. 大数据技术原理与应用(林子雨老师)慕课课后习题
  14. Badboy测试工具的使用教程
  15. 开关电源主滤波电解电容器屡爆原因及预防
  16. Xshell中鼠标选中内容自动换行ctrl+c解决办法
  17. 将DWG文件批量转换为JPG文件
  18. python复利计算_使用Python函数计算复利
  19. canvas制作九宫格拼图(坐标完整版)
  20. 君正T41 AI 视频处理器

热门文章

  1. ckeditor5加字数_ckeditor字数限制
  2. 多个mysql 环境_关于几个MySQL环境问题的对比
  3. mysql as_mysql AS子句
  4. binwalk -e mysql_Binwalk的安装和使用
  5. android 一个activity定时更新另一个activity的UI
  6. 三十六、Java集合中的HashMap
  7. 二十七、Kaggle| 研究生入学率预测
  8. “悟道”公开课第四讲丨悟道开发案例:​悟空策论——议论文写作平台
  9. CVPR 2019 | 针对人脸识别系统的高效黑盒对抗攻击算法
  10. HDU1001 Easy h-index