Considere que, no algoritmo em alto nível
incompleto a seguir, L1 e L2 sejam apontadores para List, de modo que L2 seja inicialmente vazia, e A, B e C sejam apontadores para Node:C := newNode(A^.value, B^.next);
B^.next := C;
A := A^.next;
C := newNode(A^.value, B^.next);
B^.next := C;
A := A^.next; B := C;
C := newNode(B^.value, B^.next);
A^.next := C;
A := A^.next;
C := newNode(A^.value, A^.next);
A^.next := A;
B := C;