Linked list for interviews
Bug

SinglyLinkedList.delete called on the tail node doesn't really delete it: the previous node still holds the reference.
Interface

SinglyLinkedList.insert and SinglyLinkedList.delete require a handle to a Node object, which is quite hard to obtain. It seems that the only way is to manually iterate the list breaking on a condition. I recommend prepend, append, insert to return a newly created instance. A find method would also be useful.