code: def isBalanced(self, root):
      """
      :type root: TreeNode
      :rtype: bool
      """
      # Bottom-up recursion with sentinel -1
      if root is None:
          return True
      if self.getDepth(root) < 0:
          return False
      return True
  
label_desc: Use image node_id 1 for calling the Solution obj's underlying member method code with example usage: obj.isBalanced(root) and returns: True, True, False