/** * Fjerner første tilfelle av o, returnerer true hvis vellykket */ public boolean remove(Object o) { if(first.equals(o)) { first = first.getNext(); items--; return true; } return removeNextOrAfter(first, o); } private boolean removeNextOrAfter(Link l, Object o) { // fortsett mens neste eksisterer if(l.getNext() != null) { // hvis neste skal fjernes if(l.getNext().equals(o)) { l.linkTo(l.getNext().getNext()); items--; return true; } // hvis ikke prøv den etter neste return removeNextOrAfter(l.getNext(), o); } return false; }