【发布时间】:2022-11-11 05:16:40
【问题描述】:
“要从高度为 n 的一个中获得高度为 n + 1 的二叉树,我们最多可以创建两个叶子来代替之前的每个叶子。” 形式语言和自动机简介 - Peter Linz
有人可以向我解释(视觉上)我们如何通过将叶子加倍来获得高度为 n + 1 的二叉树吗?
【问题讨论】:
-
你的报价来源是什么?您可以在问题中添加链接吗?
标签: binary-tree
“要从高度为 n 的一个中获得高度为 n + 1 的二叉树,我们最多可以创建两个叶子来代替之前的每个叶子。” 形式语言和自动机简介 - Peter Linz
有人可以向我解释(视觉上)我们如何通过将叶子加倍来获得高度为 n + 1 的二叉树吗?
【问题讨论】:
标签: binary-tree
引文中要强调的词是“代替”.
下面是一个高度为 2 的二叉树示例:
1
/
2 3
/
4
它有两片叶子:一片值为 3,另一片值为 4。
如果我们用一个小子树替换这些叶子中的每一个,该子树的父节点有 2 个叶子,那么我们得到:
1
/
2 3
/ /
4 c d
/
a b
在这里,我们看到生成的树的高度为 3。
一般来说,当一棵树的高度为?时,有至少该树中 ? 层的一片叶子(当从 0 开始层编号时)。当该叶子被替换为具有 2 个叶子的父节点的小子树时,很明显这些新叶子位于 ? + 1 层上,从而使树的高度为 ? + 1。
话“最多两片叶子”表明如果我们用只有一个父节点的小子树替换现有的叶子,上面的方法也可以工作一叶子。
【讨论】: