Cell* take(int n, const Cell* L) { if(n == 0) return NULL; else if(L == NULL) return NULL; else return new Cell(L->item, take(n-1, L->next)); }