The "maybe you don't need a linked list" proposal at the bottom seems significantly better than the options presented in the post:
- almost no cost in the non-erroring path
- no extra data structures to manage
- a lot less code
I think the post would benefit from a better analysis of why this doesn't work for them.