专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

有什么好的办法记住链表翻转_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 20:26:58       共计:3589 浏览

有什么好的办法记住链表翻转?

单链表,官方释义为:是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。如图:

单链是单向的,只能单向访问,现需要将链表翻转过来,也就是说next指针要反向。

1、简单思路:

当然这里有个简单的思路:遍历一遍链表,将每个元素都存储进vector容器,然后反向迭代vector的每个元素,并将元素的next指针指向容器中前一个元素。这是最简单的方式,实现起来也十分好理解;

但是这种方式并不是鹅厂想要的,因为他们想考的是面试者对链表数据结构的理解程度,以及逻辑思维的深度。

2、从链表角度的思路

单链表反转,我们需要处理的就是当前节点、当前节点前一个节点、当前节点后一个节点,这三个节点之间的逻辑关系(node_head、node_temp_pre、node_temp_next)。其实我们只需要将头指针逐步顺着链表往后移,并且在移动过程中,改变next的指向。

思路实现关键点:

首先我们得在改变当前节点next指向之前将next指向的节点访问出来并通过指针保存起来,不然当当前节点的next指向改变再来访问就访问不到了

然后将next指向node_temp_pre(之前保存的前一个节点)

再然后要做好准备将head往后移动一位,将当前节点赋值给node_temp_pre,作为后续节点的next节点

最后移动head

题解

这样您应该可以很清楚的记住翻转链表的实现方法了吧!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:数据分析到底有多难_java | ·下一条:闪电宝错误代码000001怎么解决_PHP基础

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有