@@ -5,44 +5,44 @@ class Node{
55 public  Node  pre ;//指向前面的指针 
66 public  Node  next ;//指向后面的指针 
77 public  Node (int  key ,int  value ){
8-  this .val = value ;
9-  this .key = key ;
8+  this .val  =  value ;
9+  this .key  =  key ;
1010 }
1111}
1212class  LRUCache  {
1313 int  capacity ;//容量 
1414 Node  head ;//双向链表的头,维护这个指针,因为set,get时需要在头部操作 
1515 Node  end ;//双向链表的尾,set时,要是满了,需要将链表的最后一个节点remove 
16-  HashMap <Integer ,Node > map = new  HashMap <Integer ,Node >();//hash表 
16+  HashMap <Integer ,Node > map  =  new  HashMap <Integer ,Node >();//hash表 
1717 public  LRUCache (int  capacity ) {
18-  this .capacity = capacity ;
18+  this .capacity  =  capacity ;
1919 }
2020 //添加,删除尾部,插入头部的操作 
2121 public  void  remove (Node  node ){
22-  Node  cur = node ;
23-  Node  pre = node .pre ;
24-  Node  post = node .next ;
25-  if (pre == null ){//说明cur是头部节点 
26-  head = post ;
22+  Node  cur  =  node ;
23+  Node  pre  =  node .pre ;
24+  Node  post  =  node .next ;
25+  if (pre  ==  null ){//说明cur是头部节点 
26+  head  =  post ;
2727 }
28-  else  pre .next = post ;//更新指针,删除 
29-  if (post == null ){//说明cur是最后的节点 
30-  end = pre ;
28+  else  pre .next  =  post ;//更新指针,删除 
29+  if (post  ==  null ){//说明cur是最后的节点 
30+  end  =  pre ;
3131 }
32-  else  post .pre = pre ;
32+  else  post .pre  =  pre ;
3333 }
3434 public  void  setHead (Node  node ){
3535 //直接插入 
36-  node .next = head ;
37-  node .pre = null ;
38-  if (head != null ) head .pre = node ;//防止第一次插入时为空 
39-  head = node ;
40-  if (end ==null ) end = node ;
36+  node .next  =  head ;
37+  node .pre  =  null ;
38+  if (head  !=  null ) head .pre  =  node ;//防止第一次插入时为空 
39+  head  =  node ;
40+  if (end ==null ) end  =  node ;
4141 }
4242 public  int  get (int  key ) {
4343 if (map .containsKey (key )){
4444 //需要把对应的节点调整到头部 
45-  Node  latest = map .get (key );
45+  Node  latest  =  map .get (key );
4646 remove (latest );
4747 setHead (latest );
4848 //返回value 
@@ -54,18 +54,18 @@ public int get(int key) {
5454 public  void  put (int  key , int  value ) {
5555 if (map .containsKey (key )){//这个key原来存在 
5656 //只需要把key对应的node提到最前面,更新value 
57-  Node  oldNode = map .get (key );
58-  oldNode .val = value ;
57+  Node  oldNode  =  map .get (key );
58+  oldNode .val  =  value ;
5959 remove (oldNode );
6060 setHead (oldNode );
6161 }
6262 else {
6363 //这个key原来不存在,需要重新new出来 
64-  Node  newNode = new  Node (key ,value );
64+  Node  newNode  =  new  Node (key ,value );
6565 //接下来要考虑容量 
66-  if (map .size ()< capacity ){
66+  if (map .size () <  capacity ){
6767 setHead (newNode );
68-  map .put (key ,newNode );
68+  map .put (key ,newNode );
6969 }
7070 else {
7171 //容量不够,需要先将map中,最不常使用的那个删除了删除 
@@ -74,7 +74,7 @@ public void put(int key, int value) {
7474 remove (end );
7575 setHead (newNode );
7676 //放入新的 
77-  map .put (key ,newNode );
77+  map .put (key ,newNode );
7878 }
7979 }
8080 }
0 commit comments