input: Write a function to check if a given binary tree is a subtree of another binary tree. If it is a subtree return True else return False. If the given subtree is empty then return True.
  
  
  class Node: 
      def __init__(self, data): 
          self.data = data 
          self.left = None
          self.right = None
  
  def isSubTree(T, S):
      if S is None:
          return True
      if T is None:
          return False
      if areIdentical(T, S):
          return True
      return isSubTree(T.left, S) or isSubTree(T.right, S)
  
  def areIdentical(T, S):
      if T is None and S is None:
          return True
      if T is None or S is None:
          return False
      return (T.data == S.data and areIdentical(T.left, S.left) and
              areIdentical(T.right, S.right))
  
  assert isSubTree(Node(1), Node(2)) == False
  assert isSubTree(Node(3), None) == True
  assert isSubTree(buildTree([1, 2, 3]), buildTree([2, 4])) == False
  assert isSubTree(buildTree([1, 2, 3]), buildTree([2, 3])) == True
  assert isSubTree(buildTree([]), buildTree([])) == True
  
output: def isSubTree(T, S):
      if S is None:
          return True
      if T is None:
          return False
      if areIdentical(T, S):
          return True
      return isSubTree(T.left, S) or isSubTree(T.right, S)
  
  def areIdentical(T, S):
      if T is None and S is None:
          return True
      if T is None or S is None:
          return False
      return (T.data == S.data and areIdentical(T.left, S.left) and
              areIdentical(T.right, S.right))