diff --git a/src/main/java/com/thealgorithms/datastructures/caches/LFUCache.java b/src/main/java/com/thealgorithms/datastructures/caches/LFUCache.java index 01ba5e250..de1f6af64 100644 --- a/src/main/java/com/thealgorithms/datastructures/caches/LFUCache.java +++ b/src/main/java/com/thealgorithms/datastructures/caches/LFUCache.java @@ -101,7 +101,7 @@ public class LFUCache { node.next = temp; node.previous = temp.previous; temp.previous.next = node; - node.previous = temp.previous; + temp.previous = node; break; } } else { diff --git a/src/test/java/com/thealgorithms/datastructures/caches/LFUCacheTest.java b/src/test/java/com/thealgorithms/datastructures/caches/LFUCacheTest.java index 14cbb6304..6faf6da3a 100644 --- a/src/test/java/com/thealgorithms/datastructures/caches/LFUCacheTest.java +++ b/src/test/java/com/thealgorithms/datastructures/caches/LFUCacheTest.java @@ -61,4 +61,22 @@ class LFUCacheTest { assertEquals(null, lfuCache.get(2)); assertEquals("Zeta", lfuCache.get(7)); } + + /** + * test addNodeWithUpdatedFrequency method + * @author yuluo + */ + @Test + void testAddNodeWithUpdatedFrequency() { + LFUCache lfuCache = new LFUCache<>(3); + lfuCache.put(1, "beijing"); + lfuCache.put(2, "shanghai"); + lfuCache.put(3, "gansu"); + + assertEquals("beijing", lfuCache.get(1)); + + lfuCache.put(1, "shanxi"); + + assertEquals("shanxi", lfuCache.get(1)); + } }