完全二叉树中是否可能存在只有一个子节点的节点呢?
这是否可以算作完全二叉树呢?
23
/ \
12 15
/ \
9 11
/ \ \
10 5 13
完全二叉树中是否可能存在只有一个子节点的节点呢?
这是否可以算作完全二叉树呢?
23
/ \
12 15
/ \
9 11
/ \ \
10 5 13
首先要区分完全二叉树和满二叉树之间的区别。在一个满二叉树中,每个节点都有两个孩子(如果不是叶子节点)或没有孩子(如果是叶子节点)。因此,一个有N
层的满二叉树共有2^(N + 1) - 1
个节点。但是,如果我们谈论的是完全二叉树,则表示除了最后一层外,每一层都是满的,而最后一层可能不是满的。此外,在完全二叉树中,最后一层的节点必须从左到右填充。
因此,如果你说的是满二叉树,那么只有一个孩子是不可能的。但是,如果你指的是完全二叉树,那么只有一个孩子是可能的。
*
/ \
/ \
* x
/ \ /
* * *
这是一棵二叉树,除了最后一层可能不完全填充外,每一层都完全填充,且所有节点尽可能地靠左。此外,节点 x
只有一个子节点。
23
/ \
12 15
/ \
9 11 <- not the last level, but not completely filled!
/ \ \
10 5 13 <- last level: not completely filled, but that's okay
因此,根据这个定义,这个示例树不完整。