code: function(opt_comparator) {
    /**
     * Comparison function used to compare values in the tree. This function
     * should take two values, a and b, and return x where:
     *
     * <pre>
     *  x < 0 if a < b,
     *  x > 0 if a > b,
     *  x = 0 otherwise
     * </pre>
     *
     * @private @const {!Function}
     */
    this.comparator_ = opt_comparator || DEFAULT_COMPARATOR;
  
    /**
     * Pointer to the root node of the tree.
     *
     * @private {?Node<T>}
     */
    this.root_ = null;
  
    /**
     * Pointer to the node with the smallest value in the tree.
     *
     * @private {?Node<T>}
     */
    this.minNode_ = null;
  
    /**
     * Pointer to the node with the largest value in the tree.
     *
     * @private {?Node<T>}
     */
    this.maxNode_ = null;
  }
docs: Constructs an AVL-Tree, which uses the specified comparator to order its
  values. The values can be accessed efficiently in their sorted order since
  the tree enforces a O(logn) maximum height.
  
  @param {?Function=} opt_comparator Function used to order the tree's nodes.
  @constructor
  @implements {Collection<T>}
  @final
  @template T