diff --git a/include/sl.h b/include/sl.h index 2de123a..a21a583 100644 --- a/include/sl.h +++ b/include/sl.h @@ -398,6 +398,7 @@ } \ } \ n->field.sle.prev = path[1]; \ + n->field.sle.next[0]->field.sle.prev = n; \ if (n->field.sle.next[0] == slist->slh_tail) { \ slist->slh_tail->field.sle.prev = n; \ } \ @@ -662,6 +663,9 @@ path[i]->field.sle.len = level - 1; \ } \ } \ + if (node->field.sle.next[0] == slist->slh_tail) { \ + slist->slh_tail->field.sle.prev = n->field.sle.prev; \ + } \ if (SKIPLIST_MAX_HEIGHT == 1) \ free(path); \ free_node_blk; \