@@ -233,7 +233,7 @@ private int randomLevel() {
233
233
/**
234
234
* 默认情况下的高度为1,即只有自己一个节点
235
235
*/
236
- private int leveCount = 1 ;
236
+ private int levelCount = 1 ;
237
237
238
238
/**
239
239
* 跳表最底层的节点,即头节点
@@ -271,9 +271,9 @@ public void add(int value) {
271
271
maxOfMinArr[i]. forwards[i] = newNode;
272
272
}
273
273
274
- // 如果当前newNode高度大于跳表最高高度则更新leveCount
275
- if (leveCount < level) {
276
- leveCount = level;
274
+ // 如果当前newNode高度大于跳表最高高度则更新levelCount
275
+ if (levelCount < level) {
276
+ levelCount = level;
277
277
}
278
278
279
279
}
@@ -299,7 +299,7 @@ public void add(int value) {
299
299
public Node get(int value) {
300
300
Node p = h;
301
301
// 找到小于value的最大值
302
- for (int i = leveCount - 1 ; i >= 0 ; i-- ) {
302
+ for (int i = levelCount - 1 ; i >= 0 ; i-- ) {
303
303
while (p. forwards[i] != null && p. forwards[i]. data < value) {
304
304
p = p. forwards[i];
305
305
}
@@ -334,8 +334,8 @@ public Node get(int value) {
334
334
public void delete(int value) {
335
335
Node p = h;
336
336
// 找到各级节点小于value的最大值
337
- Node [] updateArr = new Node [leveCount ];
338
- for (int i = leveCount - 1 ; i >= 0 ; i-- ) {
337
+ Node [] updateArr = new Node [levelCount ];
338
+ for (int i = levelCount - 1 ; i >= 0 ; i-- ) {
339
339
while (p. forwards[i] != null && p. forwards[i]. data < value) {
340
340
p = p. forwards[i];
341
341
}
@@ -344,16 +344,16 @@ public void delete(int value) {
344
344
// 查看原始层节点前驱是否等于value,若等于则说明存在要删除的值
345
345
if (p. forwards[0 ] != null && p. forwards[0 ]. data == value) {
346
346
// 从最高级索引开始查看其前驱是否等于value,若等于则将当前节点指向value节点的后继节点
347
- for (int i = leveCount - 1 ; i >= 0 ; i-- ) {
347
+ for (int i = levelCount - 1 ; i >= 0 ; i-- ) {
348
348
if (updateArr[i]. forwards[i] != null && updateArr[i]. forwards[i]. data == value) {
349
349
updateArr[i]. forwards[i] = updateArr[i]. forwards[i]. forwards[i];
350
350
}
351
351
}
352
352
}
353
353
354
354
// 从最高级开始查看是否有一级索引为空,若为空则层级减1
355
- while (leveCount > 1 && h. forwards[leveCount ] == null ) {
356
- leveCount -- ;
355
+ while (levelCount > 1 && h. forwards[levelCount - 1 ] == null ) {
356
+ levelCount -- ;
357
357
}
358
358
359
359
}
@@ -379,7 +379,7 @@ public class SkipList {
379
379
/**
380
380
* 默认情况下的高度为1,即只有自己一个节点
381
381
*/
382
- private int leveCount = 1 ;
382
+ private int levelCount = 1 ;
383
383
384
384
/**
385
385
* 跳表最底层的节点,即头节点
@@ -436,9 +436,9 @@ public class SkipList {
436
436
maxOfMinArr[i]. forwards[i] = newNode;
437
437
}
438
438
439
- // 如果当前newNode高度大于跳表最高高度则更新leveCount
440
- if (leveCount < level) {
441
- leveCount = level;
439
+ // 如果当前newNode高度大于跳表最高高度则更新levelCount
440
+ if (levelCount < level) {
441
+ levelCount = level;
442
442
}
443
443
444
444
}
@@ -463,7 +463,7 @@ public class SkipList {
463
463
public Node get (int value ) {
464
464
Node p = h;
465
465
// 找到小于value的最大值
466
- for (int i = leveCount - 1 ; i >= 0 ; i-- ) {
466
+ for (int i = levelCount - 1 ; i >= 0 ; i-- ) {
467
467
while (p. forwards[i] != null && p. forwards[i]. data < value) {
468
468
p = p. forwards[i];
469
469
}
@@ -484,8 +484,8 @@ public class SkipList {
484
484
public void delete (int value ) {
485
485
Node p = h;
486
486
// 找到各级节点小于value的最大值
487
- Node [] updateArr = new Node [leveCount ];
488
- for (int i = leveCount - 1 ; i >= 0 ; i-- ) {
487
+ Node [] updateArr = new Node [levelCount ];
488
+ for (int i = levelCount - 1 ; i >= 0 ; i-- ) {
489
489
while (p. forwards[i] != null && p. forwards[i]. data < value) {
490
490
p = p. forwards[i];
491
491
}
@@ -494,16 +494,16 @@ public class SkipList {
494
494
// 查看原始层节点前驱是否等于value,若等于则说明存在要删除的值
495
495
if (p. forwards[0 ] != null && p. forwards[0 ]. data == value) {
496
496
// 从最高级索引开始查看其前驱是否等于value,若等于则将当前节点指向value节点的后继节点
497
- for (int i = leveCount - 1 ; i >= 0 ; i-- ) {
497
+ for (int i = levelCount - 1 ; i >= 0 ; i-- ) {
498
498
if (updateArr[i]. forwards[i] != null && updateArr[i]. forwards[i]. data == value) {
499
499
updateArr[i]. forwards[i] = updateArr[i]. forwards[i]. forwards[i];
500
500
}
501
501
}
502
502
}
503
503
504
504
// 从最高级开始查看是否有一级索引为空,若为空则层级减1
505
- while (leveCount > 1 && h. forwards[leveCount ] == null ) {
506
- leveCount -- ;
505
+ while (levelCount > 1 && h. forwards[levelCount ] == null ) {
506
+ levelCount -- ;
507
507
}
508
508
509
509
}
0 commit comments