PList Reverse(PList L) { PList pnew,pnext; pnew=L->next; while(pnew!=NULL) { if(pnew==L->next) { pnext=pnew->next;//顺序不能反,不能写成pnew->new=pnext; pnew->next=NULL; pnew=pnext; } else { pnext=pnew->next;//顺序不能反 pnew->next=L->next; L->next=pnew;//头插法 pnew=pnext; } } return L; }
时间: 2024-04-26 12:25:01 浏览: 170
这是一个链表反转的函数,传入参数为链表头指针L,返回反转后的链表头指针。具体来说,函数中定义了两个指针pnew和pnext,pnew指向待反转链表的头节点,pnext指向pnew的后继节点。函数中用了头插法的思想,即将pnew插入到反转后链表的头部,因此每次反转时都需要将pnew的next指向反转后链表的头节点,同时修改反转后链表的头指针。最后返回反转后链表的头指针。需要注意的是,循环过程中需要先将pnext保存下来,因为在修改pnew的next指针后,pnew的后继节点会丢失。
阅读全文