Void deleterandomnode (node * pcurrent) {// Delete the node assert (pcurrent! = NULL); node * pnext = pcurrent-> next; If (pnext! = NULL) {pcurrent-> next = pnext-> next; pcurrent-> DATA = pnext-> data; Delete pnext ;}} void reverselist (node * & head) {// give a nod pointer (with a head node) and traverse the single-chain table only once to reverse the reverse order node * pcurrent, * pnext; pnext = head-> next; head-> next = NULL; // extract the head node while (pnext) {// Insert the head node pcurrent = pnext; pnext = pnext-> next; pcurrent-> next = head-> next; // insert head-> next = pcurrent;} void reverselistnohead (node * & head) {// No header node, reverse reverse node * PPRE, * pcurrent, * pnext; PPRE = head; If (PPRE = NULL) // No node in the linked list, and the header Pointer Points to nullreturn; else // otherwise, as above {pnext = PPRE-> next; while (pnext) {pcurrent = pnext; pnext = pnext-> next; pcurrent-> next = PPRE; PPRE = pcurrent ;}} head-> next = NULL; // change the first node next to nullhead = pcurrent; // change the last node (pcurrent) to head}