Odin Linked List (Console Only)

Warning!  This page is meant for technical reviewers only, hence, it is not interesting for anyone else.

The "LinkedList" class is available in the "console" and has the following:

  1. append(value) adds a new node containing value to the end of the list
  2. prepend(value) adds a new node containing value to the start of the list
  3. length returns the total number of nodes in the list
  4. head returns the first node in the list
  5. tail returns the last node in the list
  6. at(index) returns the node at the given index
  7. pop removes the last element from the list
  8. shift removes the first element from the list
  9. contains(value) returns true if the passed in value is in the list and otherwise returns false.
  10. find(value) returns the index of the node containing value, or null if not found.
  11. toString represents your LinkedList objects as strings, so you can print them out and preview them in the console.
      The format should be: ( value ) -> ( value ) -> ( value ) -> null
  12. insertAt(value, index) that inserts a new node with the provided value at the given index.
  13. removeAt(index) that removes the node at the given index.
  14. forEach(function: (any, number) => void) that calls the given function with every list-node's value & index.
  15. filter(function: (any, number) => boolean) that calls the given function with every list-node's value & index and returns a new LinkedList instance that only contains the nodes which the given function returns true with its values.
  16. map(function: (any, number) => any) that calls the given function with every list-node's value & index and returns a new LinkedList instance that contains all nodes has values returned from the given function as its values.