前言:
现在看官们对“链表反转java笔试题”可能比较注重,我们都需要知道一些“链表反转java笔试题”的相关文章。那么小编在网上搜集了一些关于“链表反转java笔试题””的相关文章,希望大家能喜欢,咱们一起来学习一下吧!跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力。算法和数据结构,是基础中的基础,更是笔试的重中之重。
不积硅步,无以至千里;不积小流,无以成江海。题目描述
Java版剑指offer编程题第15题--反转链表: 输入一个链表,反转链表后,输出新链表的表头。
我的想法一般反转问题首先可以想到的是用一个栈做中转站,因为栈先进后出,可以颠倒顺序。但是时间、空间花销都很大。这里不给出代码演示了。链表反转一般标准解法是利用指针的移动,但是很多小伙伴看代码会看的晕乎乎的,所以我这里对着代码画了一张图,帮助小伙伴们理解,重点就是别将pre,head,next这三个指针和链表节点以及链表节点本身自带的next指针弄混了。递归思想,先把头节点后面的部分反转,然后将头节点添加到末尾,这样不断递归下去。看了递归解法的代码,你可能会体会到递归解法的魅力,哈哈哈。解题方法1
指针跳转过程图示:
解题方法2代码测试
代码测试控制台输出结果:
总结
反转链表,这里的两种解法我今天都收获很大哦,指针的跳转真的棒,递归思想真的秀,明天见啦!
参考文献
[1]程杰. 大话数据结构. 北京:清华大学出版社, 2011.
更多
对我的文章感兴趣,点个关注是对我最大的支持,持续更新中……
关注微信公众号LearnJava,发现更多精彩!
标签: #链表反转java笔试题