前言:
当前看官们对“反转链表递归怎么理解”大体比较重视,看官们都想要分析一些“反转链表递归怎么理解”的相关资讯。那么小编在网络上收集了一些有关“反转链表递归怎么理解””的相关文章,希望我们能喜欢,我们一起来学习一下吧!链表反转是常见的经典面试题目之一,常常用于考察面试者基本算法能力与编码能力的;更进一步会在空间复杂度上进行一定的限制,或者要求使用多种方式实现。
下面就介绍三种常见的实现方式。
方式一:借助栈这种数据结构
如果对空间使用没有限制的话,可以借助栈这种数据结构来实现。栈的特性是后进先出,只需要对链表进行遍历并压栈,然后依次弹出;弹出过程中需要记录上一个弹出元素,将上一个元素的next指向本次弹出元素,依次循环;
注意弹出最后一个元素后,需要将其next设置为null。
具体实现如下:
方案二:使用指针移动进行迭代处理
要求空间复杂度为1,这时候就不能借助栈这种数据结构,需要通循环迭代与过指针移动遍历处理。
需要设置三个指针,分别记录前一个元素,当前遍历的元素,当前要遍历元素的下一个元素。
具体实现如下:
方案三:递归实现
在递归函数中,按照顺序传入两个相邻元素;
每次进行指针反转,直到遍历到最后元素为止
相关文章
面试系列:七道手写代码面试题及思路解析,值得收藏
面试系列:使用递归实现字符串反转输出
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #反转链表递归怎么理解