思路:把头指针指向空,后面的结点指向前面的一个结点,最后的尾结点做新的头结点。
typedef struct Node
{
int data;
struct Node* next;
} Node;
Node* reverseList (Node* head)
{
if ((head == NULL) || ((head->next) == NULL))
return;
Node* pre;
Node* cur;
Node* next;
cur = head->next;
pre = NULL;
while (cur != NULL)
{
next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
head->next = pre;
return head;
}