Lowest Common Ancestor in Binary Tree (Iterative)
Unit tests
Turn these:
print(lowest_common_ancestor(root, root.left.left, root.left.right))       # 11
print(lowest_common_ancestor(root, root.left.left, root.left))             # 11
print(lowest_common_ancestor(root, root.left.left, root.right.right))      # 30

into assertions of the form assert 11 == ..., and you'll immediately have a unit test, which is generally of greater value.
Pop
node = stack[-1]
stack.pop()

should not be necessary; that's what pop already does:
node = stack.pop()