      <li>In the process of partition, the input list is disassembled and the existing nodes are re-distributed into the sublists. The partition operation does not allocate any new nodes or make node copies.</li>
      <li>The <code class="language-c++ highlighter-rouge"><span class="n">partition</span></code> produces three separate lists as its result. In C++, the function return only can send back a single value, so you'll need to explore using pass-by-reference parameters (a reference to a pointer, oh m