This is a code for inverting a linked link.But I just understand a little.Please explain it clearly help me.
Code:node *inverting (list &first, list &last) { node *tmp; if (first != NULL) { if ((first)->next != NULL) { tmp= inverting (first->next,last); (last)->next = first; last = first; (last)->next = NULL; first = tmp; } return first; } else return NULL; }