node* reverseLinkedList (node* & head) {
//empty list or single node
if (head == NULL || head -> next == NULL) {
return head;
}
node* prev = NULL;
node* curr = head;
node* forword = NULL;
while (curr != NULL) {
forword = curr -> next;
curr -> next = prev;
prev = curr;
curr = forword;
}
return prev;
}