A singly linked list implementation with several methods:
append(value)
-> Adds new value at the end of the list.prepend()
-> Adds new value at the begining of the list.size()
-> Returns the length of list.head()
-> Returns the first item of the list.tail()
-> Returns the last item of the list.at(index)
-> Returns the value at the given index from list.pop()
-> Remove the last item and return the value of removed item.contains(value)
-> Returns true if the value is present in the list otherwise returns false.find(value)
-> Returns the index of the given value if it present in the list.toString()
-> Returns a string that represent the structure of the list.insertAt(value, index)
-> Insert value at the given index.removeAt(index)
-> Removes the value from the given index.