Mirror Tree Python

PROGRAM TO CONVERT A BINARY TREE INTO ITS MIRROR TREE



class newNode:
    def __init__(self,data):
        self.data = data
        self.left = self.right = None
  
""" Change a tree so that the roles of the 
    left and right pointers are swapped at
    every node. 
  
So the tree... 
        
        / \ 
    2 5 
    / \ 
    1 3 
  
is changed to... 
    
    / \ 
    5 2 
    / \ 
    3 1 
"""
def mirror(node): 
  
    if (node == None):
        return
    else:
  
        temp = node 
          
        """ do the subtrees """
        mirror(node.left) 
        mirror(node.right) 
  
        """ swap the pointers in this node """
        temp = node.left 
        node.left = node.right 
        node.right = temp 
  
""" Helper function to print Inorder traversal."""
def inOrder(node) :
  
    if (node == None): 
        return
          
    inOrder(node.left) 
    print(node.data, end = " "
    inOrder(node.right) 
  
# Driver code 
if __name__ =="__main__"
  
    root = newNode(1
    root.left = newNode(2
    root.right = newNode(3
    root.left.left = newNode(4
    root.left.right = newNode(5
  
    """ Print inorder traversal of
        the input tree """
    print("Inorder traversal of the"
               "constructed tree is"
    inOrder(root) 
      
    """ Convert tree to its mirror """
    mirror(root) 
  
    """ Print inorder traversal of 
        the mirror tree """
    print("\nInorder traversal of"
              "the mirror treeis "
    inOrder(root) 


OUTPUT:
Inorder traversal of the constructed tree is 
4 2 5 1 3 
Inorder traversal of the mirror tree is 
3 1 5 2 4 

Comments

Popular posts from this blog

Solve the Sudoku Python

Solve the Sudoku Java

Find Duplicates Java