这道题总体来说比较复杂。首先说一下本题主要用的思想是hashmap+双向链表。 为什么要使用hashmap,因为这样在根据key取值的时候很快,如果只有一个双向链表,那么需要遍历去找值,很麻烦。 为什么要使用双向链表,因为会不断涉及到元素的插入删除,如果单链表删除的话很麻烦。 首先就是定义一个数据结构: static class Node{ int k,v; Node pre,next; public Node(int k,int v) { this.k = k; this.v = v; } } 然后遍历输入的数组。 ...