public int Get(int key) { if (!map.ContainsKey(key)) { return(-1); } LinkedNode node = map[key]; MoveToFirst(node); return(node.Value); }
private void MoveToFirst(LinkedNode node) { if (node == first) { return; } node.Pre.Next = node.Next; if (node != last) { node.Next.Pre = node.Pre; } else { last = node.Pre; last.Next = null; } node.Next = first; first.Pre = node; first = node; }