方法一 : 从第二个结点开始,把之后的每个结点都插入到第一个结点之后,最后在把第一个结点挪
到表尾 , 该方法中类似于链表头插法
struct stu *reserve(struct stu *head)
{
struct stu *p,*q;
p=head->next;
while(p->next!=NULL)
{
q=p->next;
p->next=q->next;
q->next=head->next;
head->next=q;
}
p->next=head;
head=p->next->next;
p->next->next=NULL;
return head;
方法二 :利用三个指针,在原来的基础上进行逆序。这种方法比较实用,效率也高
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode *ReverseList(ListNode *head){
Li