Compare the heads of L1 and L2. 11 > 2 so we remove 2 from L2
and add it to the end of L3. Result: L1 = [11,99], L2 =
[111,222], L3 = [2].

Compare the heads of L1 and L2. 11 < 111 so we remove 11 from
L1 and add it to the end of L3. Result: L1 = [99], L2 =
[111,222], L3 = [2,11].

Compare the heads of L1 and L2. 99 < 222 so we remove 99 from
L1 and add it to the end of L3. Result: L1 = [] (i.e. empty), L2
= [111,222], L3 = [2,11,99].

L1 is empty but L2 is not, so we join L2 to L3. Result: L3 =
[2,11,99,111,222].

5.3. Special cases of the MERGE operation

There are two special cases of MERGE that we will need later.

INSERT a special case of MERGE

If L1 (or L2) is a singleton - a list with exactly one element (call
it E) - then MERGE(L1,L2,L3) has the same overall effect as
INSERT(E,L2,L3), and furthermore the algorithm behaves step-by-step
almost exactly like INSERT.

JOIN is a special case of MERGE

We've already seen an example where the result of JOINing two sorted
lists was sorted. What are the general conditions under which this
will happen? Let L1 and L2 be any sorted lists (in ascending order):
L1 = [A1,A2,...,An], L2 = [B1,B2,...,Bm].

When we join them we get: [A1,A2,...,An,B1,B2,...,Bm].

When will this result in a list that is sorted? What assumption(s)
do we have to make about the Ai and the Bi?