树高的复杂性

时间:2014-04-30 21:46:00

标签: c++ tree binary-tree time-complexity

考虑代码:

int Tree::height(tree *node) {
    if (!node) return -1;

    return 1 + max(height(node->left), height(node->right));
}

这种方法的复杂性是什么? O(n)O(log(n))

我认为它是O(n),因为在最坏的情况下我们会检查所有节点,不是吗?

您能举例说明更好的实施吗?

由于

1 个答案:

答案 0 :(得分:2)

我认为你在所有情况下都在检查所有节点,而不仅仅是最坏的情况。是的,O(N)。