https://medium.com/@patrickofili16/how-to-implement-lru-cache-using-doubly-linked-list-and-a-hashmap-5ff0ff218f77