Я новичок в Python и пытаюсь вернуть высоту узла в упорядоченное дерево в python. Вот код, у меня есть:Возвращение высоты узла в упорядоченное дерево в Python
def Height(node, T):
if Is_OrdLeaf(T) and node == OrdRoot(T):
return 0
else:
heights = []
for x in Children(node, T):
heights += [Height(x, T) + 1]
return max(heights)
Но, когда я запускаю этот код с деревом я получаю
ValueError: max() arg is an empty sequence
Все из названных функций работают и, следовательно, высота не должна быть пустой. Что не так?
Заранее спасибо
Это должно быть очевидно из вашей ошибки, но вы берете 'max' пустого списка. Вы должны проверить, пусто ли «высоты» и вернуть 0, если это так. – rlbond
Мне действительно интересно, почему высоты пусты. Почему он не добавляет данные вещи в высоту? Я точно знаю, что Children() и OrdRoot() работают, и что я использую действительный узел и дерево. – LivingRobot
Если ваш узел является листовым узлом, у него нет детей. – rlbond