Wow...Zachm just wow (jumping two spots instead of one still makes it linear...).

Unless the list is a doubly linked list (forward and backward references) you don't have a choice but to do a linear search down the list until you reach the end. That's the whole point of a linked list: they are linked, one by one...

The only way to do it on a singularly linked list is to linearly traverse to the last object and see whether or not it has a reference to the "head" object. If it does, great, otherwise it should point to null.

If you have a doubly linked list then you can simply check head->previous.