vlambda博客
学习文章列表

C语言笔试题—单链表逆序

前情回顾



今日推荐


最近一直在笔试面试,笔试面试,见过了很多老板,也意识到社会与学校的区别。更加意识到嵌入式方向对于一个二本应届学生的现实情况(不容乐观啊)。


经常遇到这样一道题

编写程序(伪代码)实现单链表逆序

这个题其实说实话不太难但是就看你怎么去解决这个问题,重要的是思想。


我在网上搜大概就是三种解决方法,在这我也放一下我参考的网址(这位大哥写的还是非常清楚的,主要是有注释)

https://www.cnblogs.com/kingos/p/4498224.html


我就按着这位大哥的博客给大家进行一个详细图解


图片介绍


其实就是的三种方法,我主要给大家分享分析一下第二种和第三种

方法一:这个就是最简单也最容易想到的就是将整个链表读取到数组中然后将这个数组逆序输出,就很轻松的得到结果了(这个就不讲了,基本上不会写的人也都能理解)

方法二:创建三个指针p1、p2、p3,分别指向头结点,第一个节点,第二个节点,然后一直将p2和p1交换然后利用p3将p2向后移动,直到结束。

方法三:保留头结点和头结点的下一个节点,一直将之后的节点一个一个的插入到头结点之后,最后形成结果。


下面详细图解方法二:(图里有代码和图示讲解,不会的可以联系我)



下面详细图解方法三:(图里有代码和图示讲解,不会的可以联系我)