Loading... > 接着链表的插入 # 链表逆序 <div class="tip inlineBlock share"> 链表逆序说白了就是前后颠倒 </div> ![示意图](https://blog.fivk.cn/usr/uploads/2021/02/3169895980.png) 我们定义一个reverse_link函数进行操作 <iframe class="iframe_video" src="//player.bilibili.com/player.html?aid=372528286&bvid=BV1XZ4y1G7No&cid=249274181&page=59" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> * 视频第19分 ![链表逆序](https://blog.fivk.cn/usr/uploads/2021/02/2868596084.png) ```C pb = head->next; head->next = NULL; while(pb! = NULL) { //记录pb->next pr=pb->next; pb->next = head; head = pb; pb = pr; } ``` * 最后实现 reverse_link 函数 ```C STU* reverse_link(STU* head) { //判断链表是否为空 if (head == NULL) { printf("link not founf\n"); } else { //链表存在 逆序(方法太多了) STU* pb = NULL, * pr = NULL; //pb保存head->next(原因:head->next要置NULL) pb = head->next; //将head->NULL置NULL(原因:头接点变尾节点) head->next = NULL; while (pb != NULL) { //保存pb->next (原因:pb->next将要指向head) pr = pb->next; //pb->next 指向 head (原因:逆转方向) pb->next = head; //连续指向下一段 head = pb; pb = pr; } printf("链表逆序成功."); } return head; } ``` 最后修改:2021 年 02 月 07 日 © 允许付费转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏