Skip to content

2012年 408 数据结构 第 4 题

数据结构2012年选择题2分

题目

若平衡二叉树的高度为 6 ,且所有非叶结点的平衡因子均为 1 ,则该平衡二叉树的结点总数为( )。

错因

A

凭感觉估了一个偏小的数。可能用了 之类的简单线性公式。但 AVL 树的节点数随高度指数级增长(接近斐波那契递推),不是线性关系——10 远远不够装一棵高度 6 的 AVL 树。

C

按"满二叉树"算了。满二叉树高 6 节点数是 ,再除 2 凑一个 32。但本题是"所有非叶 BF=1"——左子树严格比右子树高 1,是最稀疏的 AVL 树(斐波那契树)形态,远不是满二叉树。

D

类似 C 的思路,套了 但少减了点。AVL 满载是 63,最稀疏是 20,本题答案在最稀疏端附近,不是 33。

总解析

关键约束理解:所有非叶节点 BF = 1,即"每个非叶节点的左子树严格比右子树高 1"。这是 AVL 树最稀疏的形态,节点数最少——也叫斐波那契树

为这种树高度为 时的节点数。递推:

含义:根(1 个)+ 左子树(高 ,节点数 )+ 右子树(高 ,节点数 )。

逐层算 单节点叶子, 根+左孩子):

高度
11
22
34
47
512
620

背景知识 恰好是斐波那契数列的某项——)。这是 AVL 树最少节点数的经典结论,记住"AVL 高度 6 至少 20 个节点"对快速判题很有用。

最终答案是 B(20)

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数