定义一个链表:
typedef struct Node* {
int data;
Node* next;
}Node;
链表反转两种方法:
void reverse_rcv(Node* head)
{
if(head == NULLptr || head->next == NULL)
return head;
Node* second = head->next;
Node* new_head = reverse_rcv(second);
second->next = head;
head->next = NULLptr;
return new_head;
}
void reverse(Node* head)
{
if(head == NULL || head->next = NULL)
return head;
Node * p = head->next;
Node* p_pre = head;
head->next = NULLptr;
while(p ! = NULL)
{
Node* p_next = p->next;
p->next = p_pre;
p_pre = p;
p = p_next;
}
return p_pre;
}