old_contents: # Definition for a  binary tree node
  # class TreeNode:
  #     def __init__(self, x):
  #         self.val = x
  #         self.left = None
  #         self.right = None
  
  class Solution:
      # @param p, a tree node
      # @param q, a tree node
      # @return a boolean
  
      
  
      def isSameTree(self, p, q):
          if p == None and q == None:
              return True
          if p == None and q != None:
              return False
          if p != None and q == None:
              return False
          
          if p.val != q.val:
              return False
          else:
              l = self.isSameTree(p.left, q.left)
              r = self.isSameTree(p.right, q.right)
              return l & r
  
new_contents: # Definition for a binary tree node.
  # class TreeNode(object):
  #     def __init__(self, x):
  #         self.val = x
  #         self.left = None
  #         self.right = None
  
  class Solution(object):
      def isSameTree(self, p, q):
          """
          :type p: TreeNode
          :type q: TreeNode
          :rtype: bool
          """
          if not p and not q:
              return True
              
          if p and not q:
              return False
          
          if q and not p:
              return False
              
          return p.val == q.val and \
                 self.isSameTree(p.left, q.left) and \
                 self.isSameTree(p.right, q.right)
  
subject: Update SameTree_001.py