public class ObjectNotFoundException extends Exception {
    public Object obj;

    ObjectNotFoundException(Object obj) {
        super("Object not found: " + obj);
        this.obj = obj;
    }
}

public class LinkedList {

    //...

    public LinkedList find(Object key)
        throws ObjectNotFoundException
    {
        for (LinkedList node = this; node != null; node = node.next)
            if (node.obj == key)
                return node;
        throw new ObjectNotFoundException(key);
    }

    //...

}

Throwing ObjectNotFoundException is preferable to returning null because the caller does not have to check the return value of all calls to this method for null before using them.
