Каков большой O следующего метода бинарного дерева поиска

#python #recursion #time-complexity #binary-search-tree #space-complexity

#python #рекурсия #сложность по времени #binary-search-tree #сложность пространства

Вопрос:

Я знаю, что это может быть тривиально, но я просто хочу убедиться. Я считаю, что время выполнения будет не более 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
 

Комментарии:

1. cs.stackexchange.com/q/95785

Ответ №1:

  • Вы выполняете обход DFS по дереву, все узлы будут посещены только один раз.
  • Так что, очевидно, это займет только время O (N).