input: def isSubTree(T: Node, S: Node) -> bool:
      """ Given two binary trees T and S, check if the tree S is a subtree 
      of the tree T. A subtree of a tree T is a tree consisting of a node 
      in T and all of its descendants in T.
      >>> T = Node(1)
      >>> T.left = Node(2)
      >>> T.right = Node(3)
      >>> T.left.left = Node(4)
      >>> T.left.right = Node(5)
      >>> S = Node(2)
      >>> S.left = Node(4)
      >>> S.right = Node(5)
      >>> isSubTree(T, S)
      True
      >>> S = Node(2)
      >>> S.left = Node(4)
      >>> S.right = Node(6)
      >>> isSubTree(T, S)
      False
      """
output:     if not T and not S:
          return True
      if not T or not S:
          return False
      if T.val == S.val and isSameTree(T, S):
          return True
      return isSubTree(T.left, S) or isSubTree(T.right, S)
  
  def isSameTree(T: Node, S: Node) -> bool:
      if not T and not S:
          return True
      if not T or not S:
          return False
      return T.val == S.val and isSameTree(T.left, S.left) and isSameTree(T.right, S.right)