对于平衡二叉树中的每个节点,左子子树和右子子树的高度最大差值为1。
二叉树的高度是指从根节点到最远离根节点的子节点的距离。
下面是一个示例:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
二叉树的高度:4
以下是二进制树和有关它们是否平衡的报告:
上面的树是不平衡的。
上面的树是平衡的。
编写尽可能短的程序,该程序接受二叉树的根作为输入,如果树不平衡,则返回假值,如果树平衡,则返回真值。
输入值
二叉树的根。这可能是以对根对象的引用或什至是二叉树的有效表示形式的列表的形式。
输出量
返回真实值:如果树是平衡的
返回falsey值:如果树为un平衡。
二叉树的定义
树是一个对象,其中包含一个值以及另外两个树或指向它们的指针。
二叉树的结构如下所示:
typedef struct T
{
struct T *l;
struct T *r;
int v;
}T;
如果将列表表示形式用于二叉树,则其外观可能类似于以下内容:
[root_value, left_node, right_node]
4
,那么剩下的树是否平衡?