title: How to find the middle node of a single linked list in a single traversal (if the length of the list is not given)
body: <p>I have a problem statement like: "How to find the middle node of a singly linked list in only one traversal, and the twist is we don't know the number of nodes in the linked list?"</p>
  
  <p>I have an answer like "take a vector and start pushing all the nodes' addresses as and when you are traversing the linked list and increment a counter till you reach the end of the list".  So at the end we can get the number of nodes in the list and if even (counter/2) or if odd (counter/2 + counter%2) gives the middle node number and with this we can get <code>vectore.at(middlenodenumber)</code> points to the middle node".</p>
  
  <p>This is fine...but this is waste of memory storing all the address of a very large linked list!  So how can we have a better solution?</p>