反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head)
{
struct ListNode* head_new = NULL;
struct ListNode* node = head;
if(head == NULL || head->next == NULL)
{
return head;
}
while(node != NULL)
{
struct ListNode* temp;
temp = node->next;
node->next = head_new;
head_new = node;
node = temp;
}
return head_new;
}