【问题标题】:about complete binary tree关于完全二叉树
【发布时间】:2017-05-03 03:28:38
【问题描述】:

这可能是完全二叉树中的一个节点只有一个孩子吗? 谢谢

这可以是一棵完全二叉树吗?

        23
       /  \
      12  15
     /  \   
    9   11 
   / \    \
  10  5    13  

【问题讨论】:

  • 这是作业吗?请标记它[作业]。
  • 不,这不是一个完整的二叉树。节点必须从左到右对齐。如果第 13 个节点是左孩子而不是右孩子,那么您的二叉树将是完整的。
  • 啊哈,对于一个节点来说,左孩子大于右孩子也没关系吗?
  • 是的,没关系。
  • @matin1234 你是对的。我现在心不在焉,只是没有看到#3没有满。我很抱歉。

标签: binary-tree


【解决方案1】:

好的,首先要区分完美二叉树和完全二叉树。在完美的二叉树中,每个节点都有两个孩子(如果不是叶子)或没有孩子(如果是叶子)。因此,N 级别的完美二叉树总共有 2^(N + 1) - 1 节点。但是如果我们谈论完全二叉树 - 这意味着除了最后一层之外的每一层都是满的,最后一层可能不满。同样在完全二叉树中,最后一级节点必须从左到右填充。

因此,如果您谈论完美二叉树,那是不可能的。但是如果你的意思是完整的二叉树,它可能只有一个孩子。

【讨论】:

    【解决方案2】:

    我会说这是可能的:

         *
        / \
       /   \
      *     x
     / \   / 
    *   * *
    

    这是一个

    二叉树 每个级别,除了可能的最后一个级别, 完全填满,所有节点 尽量靠左

    而节点x只有一个孩子。

    【讨论】:

    • 取决于定义,我想为你提供一个来源,但是是的,这个一个允许这样做的合理定义。 +1
    • 我从 vlood 的回答中得到了定义。
    【解决方案3】:

    引用维基百科:

    完全二叉树是二叉树 树中的每一层,除了 可能是最后一个,完全是 填充,所有节点都在最左边 尽可能。

    这意味着没有。

    【讨论】:

    • “除了……”后跟“否”是不合逻辑的,即逻辑谬误。
    • 不应该是“这意味着是”吗?
    • 这意味着'否' => 提供的示例不是完整的二叉树。
    【解决方案4】:

    来自其他答案:

    完全二叉树是一种二叉树,其中每一层(可能是最后一层除外)都被完全填满,并且所有节点都尽可能靠左。

            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
    

    所以根据这个定义,这个示例树是不完整的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 2013-01-23
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多