Invert Binary Tree

Tiffany ·2024년 3월 8일
0

AlgoExpert

목록 보기
12/20

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

    
profile
Love what you do and don't quit.

0개의 댓글