Многие люди говорят, что цикл и рекурсия в основном одинаковы.Единственное различие между ними состоит в том, что некоторые алгоритмы легче понять в рекурсии или итерации.Кроме того, цикл всегда предпочтителен из-за накладных расходов на вызовы функций.Тем не менее, вот код Python для получения высоты бинарного дерева поиска.Как я могу написать это с помощью цикла?
bst = [(1, 2), (3, None), (None, None), (None, None)]
def recursion_height(tree, v=0):
if v is None:
return -1
else:
return max(recursion_height(tree, tree[v][0]), recursion_height(tree, tree[v][1])) + 1