(node *LRUNode)
| 90 | } |
| 91 | |
| 92 | func (cache *LRUCache) bringNodeToFront(node *LRUNode) { |
| 93 | if node == cache.front { |
| 94 | return |
| 95 | } |
| 96 | |
| 97 | // node is the last in the list |
| 98 | if node.next == nil { |
| 99 | cache.rear = node.prev |
| 100 | } else { |
| 101 | // skip next prev to node prev |
| 102 | node.next.prev = node.prev |
| 103 | } |
| 104 | |
| 105 | // skip prev next to node next |
| 106 | node.prev.next = node.next |
| 107 | node.next = cache.front |
| 108 | node.prev = nil |
| 109 | cache.front.prev = node |
| 110 | cache.front = node |
| 111 | } |