【问题标题】:Given a BST we need to check if all the root nodes value is the average of its left and right node. If not delete the root给定一个 BST,我们需要检查所有根节点的值是否是其左右节点的平均值。如果不删除根
【发布时间】:2021-07-18 05:01:10
【问题描述】:

给定一个二叉搜索树,我的任务是检查每个节点是否等于其左节点值和右节点值的平均值。如果条件失败,则删除特定节点。将根据给定的方法使用自下而上的方法,例如我可以想象,但我面临的挑战是,如果在出现时即堆栈下降时 if 条件失败并且左孩子为空,我返回右孩子 ....if右为空我返回左孩子,但两者都有什么???? 那么有什么可能性,更换一个孩子也会改变较低孩子的平均值,那又如何呢? 例如提供的是->

input:
        10
      /    \
     4      15
    / \       \
   1   9       16
      /
     7
output:
        10
      /    \
     4      16
    / \       
   1   7       

请有人帮我写代码。

【问题讨论】:

  • “请帮助我”:您应该编辑您的问题并显示您遇到问题的代码,以及对于哪个示例输入它失败或给出错误的输出。但是,如果不清楚代码挑战的要求是什么,那么我们就无能为力了。如果您有此代码挑战的来源,请链接到它并逐字引用。这样我们就可以检查你是否错过了那里的东西。

标签: tree binary-search-tree


【解决方案1】:

我得到了一种方法。使用自下而上的方法:

首先检查当前节点是否是左右平均值。如果没有问题,但如果不是平均,则通过查看这三种情况删除当前节点:https://www.geeksforgeeks.org/binary-search-tree-set-2-delete/

然后执行上述步骤,直到您到达树的根部,这无疑提供了解决方案的方法。 如果我在任何步骤中有错误,请纠正我。

【讨论】:

    猜你喜欢
    • 2022-07-25
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多