List<Entry> killAll(boolean rootIncluded){
  List<Entry> killed=new ArrayList<>(rootIncluded ? entries.size() : entries.size() - 1);
  Entry entry;
  for (int i=entries.size() - 1; i > (rootIncluded ? -1 : 0); i--) {
    entry=entries.get(i);
    if (entry.dead)     continue;
    entry.dead=true;
    if (i != 0) {
      killed.add(entry);
    }
  }
  return killed;
}

List < Entry > killAll ( boolean rootIncluded ) { List < Entry > killed = new ArrayList < > ( rootIncluded ? entries . size ( ) : entries . size ( ) - 1 ) ; Entry entry ; for ( int i = entries . size ( ) - 1 ; i > ( rootIncluded ? - 1 : 0 ) ; i -- ) { entry = entries . get ( i ) ; if ( entry . dead ) continue ; entry . dead = true ; if ( i != 0 ) { killed . add ( entry ) ; } } return killed ; }
kill all , including root or not the returned entries don ' t include the root entry though
