private void deleteNodes(@NotNull List<? extends IntervalNode<T>> collectedAway) {
    if (collectedAway.isEmpty()) return;
    try {
      l.writeLock().lock();
      for (IntervalNode<T> node : collectedAway) {
        removeNode(node);
      }
    }
    finally {
      l.writeLock().unlock();
    }
  }
private void deleteNodes(@NotNull List<? extends IntervalNode<T>> collectedAway)