Code:
   charNode *W = start->next->next;
   charNode* E = start->next->next;
You have two pointers to the same node.