【leetcode 简单】 第六十题 反转链表

时间:2021-10-17 17:50:45

反转一个单链表。

示例:

输入: 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) {
if (NULL == head || NULL == head->next)
{
return head;
}
struct ListNode* a=head;
struct ListNode* b=head->next;
struct ListNode* c; head->next = NULL;
while (b)
{
c = b->next;
b->next = a;
a = b;
b = c;
}
head = a;
return head;
}