Here is the way this data structure / algorithm should work (each line is 1 step):
1. [] 2. [1] 3. [1, 2] 4. [1, 2, 3] 5. [[1, 2, 3], [4]] 6. [[1, 2, 3]