code: public void add(E element) {
          if (element == null) throw new NullPointerException();
  
          if (root == null) {
              root = new MutableNode<>(element);
          } else {
              MutableNode<E> node = root;
              while (!node.getElement().equals(element)) {
                  int distance = distance(node.getElement(), element);
  
                  MutableNode<E> parent = node;
                  node = parent.childrenByDistance.get(distance);
                  if (node == null) {
                      node = new MutableNode<>(element);
                      parent.childrenByDistance.put(distance, node);
                      break;
                  }
              }
          }
      }
docs: Adds the given element to this tree, if it's not already present.
  
  @param element element