recursive가 좋은점은 코드가 엄청 간결해질수 있다.
#1 recursive version
def invertBinaryTree(tree):
if tree is None:
return
tree.left, tree.right = tree.right, tree.left
# temp = tree.left
# tree.left = tree.right
# tree.right = temp
invertBinaryTree(tree.left)
invertBinaryTree(tree.right)
#using queue
여기서 큐 또는 스텍 순서는 별로 상관 없는듯 하다.
def invertBinaryTree(tree):
queue = [tree]
while queue:
node = queue.pop(0) # Use pop(0) to simulate queue behavior (FIFO)
if node:
# Swap left and right child nodes
node.left, node.right = node.right, node.left
# Add the swapped child nodes to the queue
queue.append(node.left)
queue.append(node.right)
return tree