input: def isSubTree(T, S):
      """
      Given two binary trees T and S, check if S is a subtree of T.
      >>> T = Node('a')
      >>> T.left = Node('b')
      >>> T.right = Node('d')
      >>> T.left.left = Node('c')
      >>> S = Node('b')
      >>> S.left = Node('c')
      >>> isSubTree(T, S)
      True
      >>> S = Node('a')
      >>> S.left = Node('b')
      >>> S.right = Node('c')
      >>> isSubTree(T, S)
      False
      """
      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))
output:     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))