Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
Follow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?
ListNode* reverseList(ListNode* head) {
if (!head) return NULL;
ListNode *new_head = head,*node;
while(head->next)
{
node=head->next;
head->next = node->next;
node->next=new_head;
new_head = node;
}
return new_head;
}