tree - 给定一个 BST,我们需要检查所有根节点的值是否是其左右节点的平均值。如果不删除根
问题描述
给定一个二叉搜索树,我的任务是检查每个节点是否等于其左节点值和右节点值的平均值。如果条件失败,则删除特定节点。将根据给定的方法使用自下而上的方法,例如我可以想象,但我面临的挑战是,如果在出现时即堆栈下降时,如果条件失败并且左孩子为空,我返回右孩子 ....如果右为空我返回左孩子,但两者都有什么????那么有什么可能性,替换一个孩子也会改变较低孩子的平均值,那又如何呢?例如提供的是->
input:
10
/ \
4 15
/ \ \
1 9 16
/
7
output:
10
/ \
4 16
/ \
1 7
有人请帮我写代码。
解决方案
我得到了一种方法。使用自下而上的方法:
首先检查当前节点是否是左右的平均值。如果没有问题,但如果不是平均,则通过查看以下 3 种情况删除当前节点:https ://www.geeksforgeeks.org/binary-search-tree-set-2-delete/
然后执行上述步骤,直到您到达树的根部,这绝对提供了解决方案的方法。如果我在任何步骤中错了,请纠正我。
推荐阅读
- eclipse - 如何使用 pydev 在 Eclipse 中使用 IPython 库
- selenium-webdriver - Katalon Studio 弹出元素识别
- go - go - 如何将切片转换为别名切片?
- apache-spark - 无法在 SPARK 数据帧上创建临时视图
- php - 当 PHP 执行 shell 以使用 2 字节字符主机名运行 Ansible 时输出错误
- server - 什么是子域名服务器以及它的用途是什么?
- python - 使用 python Multiprocessing 并行化 Monte Carlo 方法时的问题
- ios - 在多个 UILabel swift 上使用我的 Swipe 手势功能
- odoo-8 - 超过最大递归深度 Odoo
- java - 尝试使用 HSQL 数据库运行 Quartz 调度程序,出现错误