【问题标题】:get a binary tree of height n + 1 from one of height n从高度 n 之一获得高度 n + 1 的二叉树
【发布时间】:2022-11-11 05:16:40
【问题描述】:

“要从高度为 n 的一个中获得高度为 n + 1 的二叉树,我们最多可以创建两个叶子来代替之前的每个叶子。” 形式语言和自动机简介 - Peter Linz

有人可以向我解释(视觉上)我们如何通过将叶子加倍来获得高度为 n + 1 的二叉树吗?

【问题讨论】:

  • 你的报价来源是什么?您可以在问题中添加链接吗?

标签: binary-tree


【解决方案1】:

引文中要强调的词是“代替”.

下面是一个高度为 2 的二叉树示例:

           1
          / 
         2   3
        /
       4

它有两片叶子:一片值为 3,另一片值为 4。

如果我们用一个小子树替换这些叶子中的每一个,该子树的父节点有 2 个叶子,那么我们得到:

           1
          / 
         2   3
        /   /  
       4   c   d
      / 
     a   b

在这里,我们看到生成的树的高度为 3。

一般来说,当一棵树的高度为?时,有至少该树中 ? 层的一片叶子(当从 0 开始层编号时)。当该叶子被替换为具有 2 个叶子的父节点的小子树时,很明显这些新叶子位于 ? + 1 层上,从而使树的高度为 ? + 1。

“最多两片叶子”表明如果我们用只有一个父节点的小子树替换现有的叶子,上面的方法也可以工作叶子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多