什么是完全二叉树?什么是叶子结点?一道题搞懂
引言
在数据结构“树与二叉树”的章节中,完全二叉树的性质是考研408和期末考试的常客。很多同学对它的定义倒背如流,但一遇到具体题目就容易出错。本文精选了一道经典题目,通过拆解完全二叉树和叶结点这两个关键定义,配合详细的图解,带你一步步避开陷阱,真正理解这类题的解法。看完你会发现,所谓的难题,不过是基础概念的灵活运用。
目录
一、题目
二、两个必须搞懂的定义
完全二叉树
叶结点
三、解题思路
四、画图
五、计算
一、题目
已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是( )。
A. 39 B. 52 C. 111 D. 119
答案:C(白色字体,扫过可见)
二、两个必须搞懂的定义
完全二叉树
一句话:除最后一层外,其他层全满;最后一层结点从左到右连续排列,右边可以空。
✅ 是完全二叉树:
1 / \ 2 3 / \ / 4 5 6(第3层从左边开始连续坐了4、5、6,7的位置空着,允许)
❌ 不是完全二叉树:
1 / \ 2 3 / \ \ 4 5 7(6的位置空了,直接坐7,中间不连续,不行)
叶结点
一句话:没有孩子的结点(度为0的结点)。
在完全二叉树中,叶结点只能出现在最后两层。
三、解题思路
题目求结点数最多→ 让树尽可能深→ 树要有第7层。
第6层情况:
最多 2^(6-1) = 32 个结点
其中 8 个是叶结点(无孩子)
剩下 32 - 8 = 24 个非叶结点,每个有 2 个孩子
第7层情况:
24 × 2 = 48 个结点
关键点:为了保证仍是完全二叉树,第6层的8个叶结点必须是最右边的8个,这样第7层的48个结点才能从最左边开始连续排列。
四、画图
第1~5层:(前五层全部排满,共31个结点) 第6层: 32 33 34 35 ... 54 55 | 56 57 58 59 60 61 62 63 ├──── 非叶结点(24个) ──┤ ├──── 叶结点(8个) ────┤ 每个结点有2个孩子 (无孩子,全在最右边) /\ / \ 第7层: 共48个结点(第6层的非叶结点的孩子结点)
五、计算
前6层满二叉树:2^6 - 1 = 63 个
第7层:48 个
总数 = 63 + 48 = 111
选 C。
一句话总结:完全二叉树 = 前面全满 + 最后一层从左到右连续排;叶结点 = 没孩子的结点。这道题考的就是这两个定义。
