title: Shift vowels in a linked list to beginning
body: <p>I was solving a problem in which given a linked list of characters , we have to move the vowels to the beginning such that both vowels and consonants are in chronological order. That is in the order in which they appear in original list.</p>
  
  <p><code>Input : S-&gt;T-&gt;A-&gt;C-&gt;K-&gt;O-&gt;V-&gt;E-&gt;R-&gt;F-&gt;L-&gt;O-&gt;W</code></p>
  
  <p><code>Output : A-&gt;O-&gt;E-&gt;O-&gt;S-&gt;T-&gt;C-&gt;K-&gt;V-&gt;R-&gt;F-&gt;L-&gt;W</code></p>
  
  <p>I did it by traversing through the list once and created two lists called vowels and consonants and later merged them.</p>
  
  <p>Can it be done without creating extra lists ? I mean in-place maybe using pointer manipulation?</p>