https://en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees说:
平衡二叉树是一种二叉树结构,每个节点的左右子树的高度相差不超过1。
如果只有一个子节点必须有一个叶作为唯一的子节点,那么二叉树是高度平衡的吗?
发布于 2022-06-22 00:59:29
,如果只有一个子节点必须有一个叶作为唯一的子节点,那么二叉树是高度平衡的吗?
不是的。这是对平衡二叉树的一个正确的观察,但它不是平衡二叉树的完整定义。虽然所有的平衡树都具有这种特性,但是很容易产生同样具有这种属性的不平衡树。
首先,当应用于平衡树时,您的观察是正确的:
在二进制树中,只有一个子的节点仍然有两个子树,其中一个是空的,其高度为0。根据定义,在平衡二叉树中,另一个非空子树的高度必须为0或1。因此,如果该节点有一个子树,那么该子节点必然是一个子树高度为1的叶节点,导致子树的高度为0和1。除了叶节点之外,任何东西都是子树高度为0和>1的不平衡树。
例如,假设节点A的左子节点B为叶节点B,而没有右子节点:
A
/
BA的左子树的高度是1,它的右子树是0,所以这是一棵平衡树:高度的差异是1。
如果A继续有一个子B,并且B下的任何节点都不是叶子,则A的左子树高度大于1,而右子树的高度保持在0:
A
/
B
/
C顾名思义,这不是一棵平衡的树。
无论如何,生成一个不平衡的二叉树仍然满足您修改的定义是可能的,也是很容易的:
二叉树是高度平衡的,如果一个节点正好有一个子节点必须有一个叶子作为它的独生子?
以下树满足以下条件:唯一具有1个子节点D的节点有一个叶节点作为其子节点。然而,这棵树显然不平衡:
A
/ \
B C
/ \
D E
/
F您可以无限期地扩展左子树,它仍将满足您的条件;只有第二个到最后一个节点需要有一个子节点,即叶子,所有其他节点都有0或2个子节点。
A
/ \
B C
/ \
D E
/ \
F G
/ \
H I
/ \
J K
/
Lhttps://stackoverflow.com/questions/71721261
复制相似问题