comefrom: <garvit244>107_1.py
code: def levelOrderBottom( root):
      if not root:
          return []
      
      queue = [(root, 0)]
      levelMap = {}
      
      while queue:
          node, level = queue.pop(0)
          if node.left:
              queue.append((node.left, level+1))
          if node.right:
              queue.append((node.right, level+1))
      
          if level in levelMap:
              levelMap[level].append(node.val)
          else:
              levelMap[level] = [node.val]
      
      result = []
      for key, value in levelMap.iteritems():
          result.append(value)
      return result[::-1]
masked: def sample_funcname ( var_0 ) :
      if not var_0 :
          return [ ]
      var_2 = [ ( var_0 , 0 ) ]
      var_3 = { }
      while var_2 :
          var_5 , var_6 = var_2.pop ( 0 )
          if var_5.left :
              var_2.append ( ( var_5.left , var_6 + 1 ) )
          if var_5.right :
              var_2.append ( ( var_5.right , var_6 + 1 ) )
          if var_6 in var_3 :
              var_3 [ var_6 ].append ( var_5.val )
          else :
              var_3 [ var_6 ] = [ var_5.val ]
      var_12 = [ ]
      for var_14 , var_15 in var_3.iteritems ( ) :
          var_12.append ( var_15 )
      return var_12 [ : : - 1 ]
  