很实际的一道题.定义一个双向链表list,方便插入和删除:定义一个哈希表,方便查找. 具体的,哈希表存放每个结点的key和它对应的结点的地址:访问结点时,如果结点存在,则将其交换到头部,同是更新哈希表中的地址: 插入结点时,首先判断capacity是否达到了上限,如果是则在链表和哈希表中删除该结点:新结点插入链表头部. 有很多细节需要注意,双向链表和哈希表的用法,需要多加体会. class LRUCache { private: struct CacheNode { int key; int v…