https://medium.com/code-writers/doubly-linked-lists-a-deep-dive-into-their-functionality-with-source-code-c-java-2b857fa1a138