从基础开始,了解二叉树本身以了解它的不同类型非常重要。
一棵树是二叉树当且仅当:-
– 有一个根节点,它可能没有任何子节点(0 个子节点,NULL 树)
——根节点可能有1个或2个子节点。每个这样的节点本身就形成了二叉树
--子节点数可以是0 ,1 ,2.......不超过2个
–从根到其他每个节点都有唯一的路径
例子:
X
/ \
X X
/ \
X X
来到您询问的术语:
二叉树是一棵完全二叉树(高度为 h ,我们取根节点为 0 )当且仅当:-
Level 0 到 h-1 表示高度为 h-1 的完整二叉树
– h-1 层的一个或多个节点可能有 0 个或 1 个子节点
如果 j,k 是第 h-1 层中的节点,则当且仅当 j 在 k 的左侧时,j 的子节点比 k 多,即最后一层 (h) 可能是缺少叶节点,但是存在的必须向左移动
例子:
X
/ \
/ \
/ \
X X
/ \ / \
X X X X
/ \ / \ / \ / \
X X X X X X X X
二叉树是严格二叉树当且仅当:-
每个节点恰好有两个子节点或没有节点
例子:
X
/ \
X X
/ \
X X
/ \ / \
X X X X
二叉树是完全二叉树当且仅当:-
每个非叶子节点正好有两个子节点
所有叶子节点都在同一级别
例子:
X
/ \
/ \
/ \
X X
/ \ / \
X X X X
/ \ / \ / \ / \
X X X X X X X X
/ \ / \ / \ / \ / \ / \ / \ / \
X X X X X X X X X X X X X X X X
你也应该知道什么是完美二叉树?
二叉树是完美二叉树当且仅当:-
– 是一棵完整的二叉树
– 所有叶子节点都在同一层
例子:
X
/ \
/ \
/ \
X X
/ \ / \
X X X X
/ \ / \ / \ / \
X X X X X X X X
/ \ / \ / \ / \ / \ / \ / \ / \
X X X X X X X X X X X X X X X X
好吧,很抱歉我没有 10 名声望,所以我无法发布图片。
希望这对您和其他人有所帮助!