阅读本篇文章大约花费您4~5分钟!
链表是非常重要的一种数据结构,插入和删除的效率都是O(1),但是查找的效率比较低是O(n)。在单链表中,经常会遇到逆序单链表的题目,虽然听起来很简单,但是要想完整无误的写出代码,还是有很多细节要注意的。
今天给大家介绍两个思路来分析这个问题。
首先我们要知道单链表逆序的本质就是将节点的next指针指向它的前一个节点;并且完成逆序操作,至少要知道三个节点才可以。这是我们继续分析的基石。
假设有一个单链表(节点数为4个),三个节点的引用分别为p1,p2,p3;
思路一
思路一的思想是知道三个节点,核心操作为p2.next=p1,然后三个节点依次向后移动,结束后再修改头指针head。
结束的条件是p2==null。
我们可以用图示的形式看一下这个过程:
结束后再将头的next指向p1即可。
这种方法有一个问题ÿ