# Postorder traversal
# Left ->Right -> Root
Â
class Node:
Â
   def __init__(self, data):
Â
       self.left = None
       self.right = None
       self.data = data
# Insert Node
   def insert(self, data):
Â
       if self.data:
           if data < self.data:
               if self.left is None:
                   self.left = Node(data)
               else:
                   self.left.insert(data)
           elif data > self.data:
               if self.right is None:
                   self.right = Node(data)
               else:
                   self.right.insert(data)
       else:
           self.data = data
Â
# Print the Tree
   def PrintTree(self):
       if self.left:
           self.left.PrintTree()
       print( self.data),
       if self.right:
           self.right.PrintTree()
Â
   def PostorderTraversal(self, root):
       res = []
       if root:
           res = self.PostorderTraversal(root.left)
           res = res + self.PostorderTraversal(root.right)
           res.append(root.data)
       return res
Â
root = Node(27)
root.insert(14)
root.insert(35)
root.insert(10)
root.insert(19)
root.insert(31)
root.insert(42)
print(root.PostorderTraversal(root))