int smallest(const ListCell* L) { int h = L->head; const ListCell* t = L->tail; if(t == NULL) { return h; } else { return min(h, smallest(t)); } }