У меня есть функция, выполняющая обход двоичного дерева, и у меня есть глобальный список «стек» для хранения временных значений.
stack = []
def search(root, v):
global stack
stack.append(root.info)
if root.info == v:
print(stack) #<------- THE FIRST PRINT IS HERE
return
if root.left is not None:
search(root.left, v)
if root.right is not None:
search(root.right, v)
stack.pop()
pass
def lca(root, v1, v2):
search(root,v1)
print(stack) #<------- THE SECOND PRINT IS HERE
Ваш вывод (стандартный вывод)
[4, 2, 1]
[4]
вход: v1 = 1, v2 = 7
Когда я печатаю значение списка изнутри и снаружи функции, я обнаружил, что результатыотличается - при печати внутри получается [4,2,1], а снаружи - [4].Я пробовал разные способы, такие как создание списка вне функции, а затем передать его в функцию, результат всегда одинаков.Может кто-нибудь знает, почему это произошло?