linkedlist destroy function has `void *extra` arg