Deallocating all in Circular LL
But, waiting to check can also be wrong:
//for example, this is wrong
node * current = head;
node * temp;
do {
   temp = current->next;
   delete current;
   current = temp;
} while (current != head);