У меня проблемы с домашним заданием.
Значение пути должно равняться значению, переданному в параметр. Если найден путь, который соответствует этому значению, я должен вернуть повороты этого пути (например, влево <-> вправо <-> влево).
def path_to_leaf_with_cost(root, s):
path = DoublyLinkedList()
sub = s - root.data
if(sub == 0 and root.left == None and root.right == None):
return path
else:
if root.right is not None:
path.add_last("right")
path.add_last(path_to_leaf_with_cost(root.right, sub))
if root.left is not None:
path.add_last("left")
path.add_last(path_to_leaf_with_cost(root.left, sub))
return path
s = 24
root = Node(4)
root.left = Node(3)
root.right = Node(5)
root.left.right = Node(10)
root.right.left = Node(1)
root.right.left.left = Node(3)
root.right.left.right = Node(8)
root.right.left.right.left = Node(6)
root.right.right = Node(2)
root.right.right.left = Node(4)
print(path_to_leaf_with_cost(root,s))
Это должно вернуть вправо <-> влево <-> вправо <-> влево в соответствии с двоичным деревом (4 + 5 + 1 + 8 + 6 ) Но он возвращает все повороты, которые были сделаны, чтобы найти путь, включая те, которые не являются частью пути. Я не уверен, как бы я изолировал только эти повороты.