How do you write a function that can reverse a linked-list?
public void reverseList() { if (head == 0) return; if (head->next == 0) return; if (head->next == tail) { head->next = 0; tail->next = head; } else { node* pre = head; node* cur = head->next; node* curnext = cur->next; head->next = 0; cur->next = head; for (; curnext != 0; ) { cur->next = pre; pre = cur; cur = curnext; curnext = curnext->next; } curnext->next = cur; } }