龙空技术网

Java版剑指offer编程题第15题--反转链表

爱jk的小姐姐 159

前言:

现在看官们对“链表反转java笔试题”可能比较注重,我们都需要知道一些“链表反转java笔试题”的相关文章。那么小编在网上搜集了一些关于“链表反转java笔试题””的相关文章,希望大家能喜欢,咱们一起来学习一下吧!

跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力。算法和数据结构,是基础中的基础,更是笔试的重中之重。

不积硅步,无以至千里;不积小流,无以成江海。题目描述

Java版剑指offer编程题第15题--反转链表: 输入一个链表,反转链表后,输出新链表的表头。

我的想法一般反转问题首先可以想到的是用一个栈做中转站,因为栈先进后出,可以颠倒顺序。但是时间、空间花销都很大。这里不给出代码演示了。链表反转一般标准解法是利用指针的移动,但是很多小伙伴看代码会看的晕乎乎的,所以我这里对着代码画了一张图,帮助小伙伴们理解,重点就是别将pre,head,next这三个指针和链表节点以及链表节点本身自带的next指针弄混了。递归思想,先把头节点后面的部分反转,然后将头节点添加到末尾,这样不断递归下去。看了递归解法的代码,你可能会体会到递归解法的魅力,哈哈哈。解题方法1

指针跳转过程图示:

解题方法2代码测试

代码测试控制台输出结果:

总结

反转链表,这里的两种解法我今天都收获很大哦,指针的跳转真的棒,递归思想真的秀,明天见啦!

参考文献

[1]程杰. 大话数据结构. 北京:清华大学出版社, 2011.

更多

对我的文章感兴趣,点个关注是对我最大的支持,持续更新中……
关注微信公众号LearnJava,发现更多精彩!

标签: #链表反转java笔试题