Как понять следующую рекурсивную функцию в двоичном дереве?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как понять следующую рекурсивную функцию в двоичном дереве?

Сообщение Anonymous »

Ниже приведена функция двоичного поиска (у корня есть левый и правый дочерний элемент), которую я не совсем понимаю. В коде он возвращает список, который является самым длинным путем в двоичном дереве. Однако со стороны:
return_path_left = list_longest_path(node.left)
return_path_right = list_longest_path(node.right)
if len(return_path_left) > len(return_path_right):
< /code>
Как сравнить два рекурсивного вызова? Например, если дерево < /p>
1
/ \
2
< /code>
list_longest_path(node.right) обязательно вернет []. Но как сравнить list_longest_path(2) с []?
Кто-нибудь поможет.
def list_longest_path(node):
"""
List the data in a longest path of node.

@param BinaryTree|None node: tree to list longest path of
@rtype: list[object]

>>> list_longest_path(None)
[]
>>> list_longest_path(BinaryTree(5))
[5]
>>> b1 = BinaryTree(7)
>>> b2 = BinaryTree(3, BinaryTree(2), None)
>>> b3 = BinaryTree(5, b2, b1)
>>> list_longest_path(b3)
[5, 3, 2]
"""
if node is None:
return []
else:
return_path_left = list_longest_path(node.left)
return_path_right = list_longest_path(node.right)
if len(return_path_left) > len(return_path_right):
return [node.data] + return_path_left
else:
return [node.data] + return_path_right


Подробнее здесь: https://stackoverflow.com/questions/368 ... inary-tree
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как понять следующую рекурсивную функцию в бинарном дереве?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как понять следующую рекурсивную функцию в бинарном дереве?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как полностью понять и реализовать рекурсивную функцию факториала?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Общие операторы в двоичном дереве с использованием C++
    Anonymous » » в форуме C++
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Leetcode: подсчет хороших узлов в двоичном дереве
    Гость » » в форуме JAVA
    0 Ответы
    35 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»