CSP-J 入门级 · CSP 2020 入门级第一轮 第 12 题

选择题 · 答案 D · 考点:二叉树基础

← 整套速查表 CSP-J 入门级 全部真题

题目

独根树的高度为 $1$。具有 $61$ 个结点的完全二叉树的高度为( )。

答案:D

考点

二叉树基础

解题思维

拿到完全二叉树的节点数,别急着套公式,先想满二叉树的节点数规律。完全二叉树的高度只比同高度的满二叉树少一点点,所以只要找到61落在哪个满二叉树的节点数区间里,高度就定下来了。

常见错误

最容易掉进的坑是死记硬背"高度h的完全二叉树节点数在2^(h-1)到2^h-1之间"这个结论,却不理解为什么。很多学生会把"高度"和"深度"搞混,或者把完全二叉树当成满二叉树去算,导致区间判断错误。还有一种情况是看到61接近64,直觉上觉得高度是7,却忘了完全二叉树最后一层可以不满,所以61完全可以放在高度为6的树里(只要前5层满共31个,第6层放30个就够了)。

详细解析(节选)

这道题考查的是二叉树基础里的完全二叉树高度计算。核心概念很简单:独根树高度为1,高度为h的满二叉树节点数正好是2^h-1;而高度为h的完全二叉树,节点数最少是2^(h-1)(前h-1层满,第h层只有1个),最多就是2^h-1(全满)。命题人喜欢挖的坑就是让你直接套用区间公式,但如果你没理解区间是怎么来的,很容易在边界上出错。

拿到题先想什么?想满二叉树的节点数规律。2^1-1=1,2^2-1=3,2^3-1=7,2^4-1=15,2^5-1=31,2^6-1=63,2^7-1=127。现在题目给了61个节点,我们看它落在哪个区间:61比31大,所以高度至少是6;61比63小,所以高度不会超过6。因此高度就是6。

具体怎么算?列个表更清楚。h=5时,范围[16,31],61不在;h=6时,范围[32,63],61正好在里面;h=7时,范围[64,127],61也不在。所以选D(6)。验算一下:2^5=32≤61≤63=2^6-1,完全吻合。

避坑提醒:别把完全二叉树当成满二叉树去算,也别因为61接近64就误判高度为7。完全二叉树的特点是除了最后一层外其他层都满,最后一层从左到右连续排列,所以节点数可以少到2^(h-1)。考频方面,二叉树基础在题库里共考过220题,覆盖8个级别,其中CSP入门级就考了8次,说明这类纯概念计算题在入门级很常见。趋势上看,2023年突然暴增20题,2024年60题,2025年67题,虽然2026年回落28题,但整体热度极高,命题人明显喜欢用这种区间判断来挖坑。预测未来,这类题大概率还会以选择题形式出现,偶尔可能会结合层序遍历或节点编号来考,但核心的区间判断思路不会变。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断