title: Checking if Linked List is palindromic
body: <p>Consider a linked list whose nodes are chars, so the list represents a string. How do you write a <em>recursive</em> routine to check whether the string is a palindrome such that
  the the said function starts unwinding the stack when it processes the character(s) at the middle of the string?</p>
  
  <p>For example, suppose that my string is "madam". My recursive function looks something like:</p>
  
  <p><code>bool isPalin(const node *startnode, const node *currentnode, const node *midpoint, ...);</code></p>
  
  <p>When <code>currentnode-&gt;data == 'd'</code>, the stack has to unwind. </p>
  
  <p>I was asked this question for an interview; at the moment I can't think of any use for this question except as a very hard puzzle.</p>
  
  <p>First thoughts: A very obvious (if inelegant) way is to:</p>
  
  <ol>
  <li>Compute the midpoint of the list first.</li>
  <li>If <code> currentnode  </code> is "before" <code>midpoint </code> , push former into a stack manually. This can be decided by maintaining a counter.</li>
  <li>Otherwise, unwind the manually maintained stack at every step of the recursion, and compare with the current character.</li>
  </ol>
  
  <p>Any better ideas or fresh insights?</p>