//不包含头结点 typedef struct LNode{ int data; LNode* next; }LNode,*LinkList; LinkList reverse(LinkList head) { if(head==nullptr||head->next==nullptr)//头结点检测; return head; LinkList cur=nullptr; LinkList pre=nullptr; LinkList next=nullptr; //初始化指针 pre=head; cur=pre->next; //节点逆置 while (cur) { next=cur->next;//保存当前节点的下一个节点 cur->next=pre; pre=cur; cur=next; } //处理头结点 head->next=nullptr; head=pre; return head; }