python - 以下二叉搜索树方法的大O是多少
问题描述
我知道这可能是微不足道的,但我只是想确定一下。我相信它的运行时间最多为 O(n)。我的理由是,在这个递归方法中,每个节点都会返回一个高度值。或者换句话说,我们将访问树中的每个节点一次。
def height(self):
if self.is_empty():
return 0
else:
left_max = self._left.height()
right_max = self._right.height()
return max(left_max, right_max) + 1
解决方案
- 您正在树上执行 DFS 遍历,所有节点只会被访问一次。
- 所以显然它只需要 O(N) 的时间。
推荐阅读
- c++ - 将 PrimitiveBatch::DrawIndexed 与 ID3D11DeviceContext::DrawIndexed 一起使用?
- python - 如何在 PyQt5 中创建浏览器?
- flutter - 在用户点击(平面按钮)上创建一个新的小部件
- javascript - javascript将我所有解密的html列表放入HTML
- python - 将 .txt 网址保存在文件夹中
- docker - Docker 服务以退出代码 0 退出 - Nuls CHAINBOX
- javascript - 如何使音频仅在添加到播放列表时播放?
- sql - sql如何在进行分组时限制记录数
- php - PHP插入数组关联 - 我想向关联数组中的现有数组插入一个值
- python - InvalidElementStateException 无效元素状态:元素必须是用户可编辑的才能清除它”使用 Selenium Python 发送文本时出错