我获得了一个Binary Search Tree类,用于实现Set。它具有所有基本功能,插入,删除和检查特定值是否存在。还提供了用于树的Node类。该节点有一个未使用的类变量height
。
class TreeNode{
.......
public int height;
.......
}
这是节点类的过度简化版本。现在我应该编写一个新类,通过使用此height
来扩展此类的功能,以便跟踪每个节点的高度,其中高度为:
这里的问题是我不能修改给我的代码,也不能简单地复制现有代码的大部分并修改它以满足我的需要,即我必须调用超类函数{{1}然后添加一些代码来更新高度,这段代码应该只为整个函数的运行时添加一个常量。我提出了一个解决方案,我打电话给add()
,然后我沿着搜索路径前往新添加的元素,以便更新高度。虽然这有效,但这是一个非常混乱的解决方案。
我目前的解决方案如下:
super.add()
,它本身就是一个递归函数(BST的标准添加函数)我只是想在这里暗示一下,因为我觉得有些东西让我不知所措,我觉得自己陷入了精神障碍。不要发布源代码。答案实际上是反问题迫使我思考也很受欢迎。