1 solution 1
1.1 数据结构
一个Hashmap和一个双向链表。如果想要快速获取first,并且只遍历一次,那么就要想到双向链表和HashMap的组合。
链表可以保证第一个在head处,HashMap可以保证查找O(1)。
HashMap的key是word本身,value是双向链表中的一个节点。
1.2 思路
遍历每个word,查找HashMap,如果已经存在,那么将双向链表中对应的节点删除,并且将HashMap中的value设置为null。
如果不存在,那么插入双向链表的尾部。
遍历完后返回双向链表的head即可。