input: Write a function to determine if the first binary tree is a subtree of the second binary tree. The function should return True if the first tree is a subtree of the second, otherwise return False. If both trees are None, return True.
  assert isSubTree(None, None)==True
  assert isSubTree(Node(1), None)==False
  assert isSubTree(None, Node(1))==True
  assert isSubTree(Node(1), Node(1))==True
  assert isSubTree(Node(1, Node(2), Node(3)), Node(1, Node(2), Node(3)))==True
  assert isSubTree(Node(2), Node(1, Node(2), Node(3)))==True
  assert isSubTree(Node(4), Node(1, Node(2), Node(3)))==False
  assert isSubTree(Node(1, None, Node(2, Node(3), None)), Node(1, None, Node(2, Node(3), None)))==True
output: def isSubTree(t1, t2):
      if t1 is None:
          return True
      if t2 is None:
          return False
      
      def isSameTree(p, q):
          if p is None and q is None:
              return True
          if p is None or q is None:
              return False
          return p.val == q.val and isSameTree(p.left, q.left) and isSameTree(p.right, q.right)
      
      if isSameTree(t1, t2):
          return True
      
      return isSubTree(t1, t2.left) or isSubTree(t1, t2.right)