- for (int i = 1; i <= item->top_level; ++i) {
- node_t *next = (node_t *)STRIP_TAG(item->next[i]);
- printf(" %p:0x%llx", item->next[i], next ? next->key : 0);
+ for (int level = 1; level <= item->top_level; ++level) {
+ node_t *next = (node_t *)STRIP_TAG(item->next[level]);
+ printf(" %p:0x%llx", item->next[level], next ? next->key : 0);
+ if (item == skiplist->head && item->next[level] == skiplist->last)
+ break;
+ if (item == skiplist->last && item->next[level] == NULL)
+ break;