What is a skip pointer?
It is used for efficient merging.
Suppose we have 2 lists.
1->2->3
5->7->8
When merging these.
We have 3 steps
1->2->3
^
1<5
1->2->3
^
1<5
1->2->3
^
1<5
We could have reduced this to 1 step however, since these lists are sorted, we just do skip list directly to 3:
1->2->3
\_____/
3<5
Doing this on regular intervals can speed up this process.