void reverseList(List *head, List *rev)
{
List *node;
// Assuming valid head & rev list entry
rev->Next = NULL;
while (head->Next)
{
// remove a node from head list
node = head->Next;
head->Next = node->Next;
// push the node in front of rev list
node->Next = rev->Next;
rev->Next = node;
}
if(rev->Next == NULL) rev = head; // no node in head list
}