You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

完全二叉树、近完全二叉树和完美二叉树的区别是什么?

三类二叉树的核心定义与差异

首先明确:三者的定义都基于“除最底层外的上层节点全部填满”的前提,差异仅集中在最底层节点的填充规则、约束严格程度上。

1. 完美二叉树(Perfect Binary Tree)

  • 是三类树中约束最严格的类型,所有层级的节点都被完全填满,不存在任何空缺
  • 高度为h的完美二叉树,总节点数固定为2^(h+1) - 1,所有叶子节点都处于同一最深层
  • 天然满足另外两类二叉树的所有判定条件,属于另外两类的特例

2. 完全二叉树(Complete Binary Tree,国际通用定义)

  • 仅允许最底层存在节点空缺,其余所有层的节点都被完全填满
  • 最底层的节点必须严格按照从左到右的顺序填充,空缺只能出现在最底层的最右侧,不允许出现“左侧位置空缺、右侧位置有节点”的情况
  • 高度为h的完全二叉树,总节点数范围是2^h ~ 2^(h+1) - 1
  • 常用的堆数据结构,就是基于完全二叉树的规则实现的

3. 近完全二叉树(Almost Complete Binary Tree)

  • 仅要求除最底层外的上层节点全部填满,对最底层节点的排列顺序没有强制靠左的要求,只要节点的父节点存在即可
  • 与完全二叉树的核心差异:完全二叉树不允许最底层节点中间有空隙,近完全二叉树允许
  • 网络上概念混淆的核心原因:部分中文资料会直接将近完全二叉树翻译为“完全二叉树”,和国际通用的完全二叉树定义冲突
核心规则快速区分
  • 约束严格程度排序:完美二叉树 > 完全二叉树 > 近完全二叉树
  • 完美二叉树是完全二叉树的特例,完全二叉树是近完全二叉树的特例
  • 三类树中仅近完全二叉树允许最底层节点不按靠左顺序排列
  • 仅完美二叉树的总节点数是固定值,另外两类的总节点数都有浮动范围

内容的提问来源于stack exchange,提问作者Ruhan Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:57:03