reverse singlely linked list
C++ Solution 1 - Iterative
ListNode reverseList(ListNode head)
{
if(head == NULL)
return head;
ListNode *f, *m;
f = head->next;
head->next = NULL;
while(f != NULL){
m = f-> next;
m->next = f;
f = m;
}
head->next = f;
return head;
}
C++ Solution 2 - Recursive
ListNode reverseList(ListNode head)
{
if(head == NULL && head->next != NULL)
return head;
ListNode *f, *m;
f = head->next;
// head->next = NULL;
m = reverseList(f);
f->next = head;
return m;
}