前言
反转单向链表就是将整个单链表的数据进行倒序的过程。
例如,如果反转之前的单链表是0->1->2->3,那么反转之后的单链表应该是3->2->1->0。这个操作通常是通过改变链表中每个节点的指针方向来实现的,即让每个节点的指针指向其前一个节点,而不是下一个节点。这种操作不需要开辟新的内存空间,只需要通过改变指针的指向即可完成。
实现原理
在反转单向链表的过程中,通常需要使用三个指针,分别是:指向当前节点的指针,指向当前节点前一个节点的指针,以及临时存储当前节点下一个节点的指针。然后,从链表的第二个节点开始遍历,将当前节点的指针指向前一个节点,同时更新前一个节点和下一个节点的指针,直到遍历到链表的最后一个节点,此时整个链表就被反转了。
代码实现
步骤1
首先定义两个指针,指向当前节点以及指向当前节点前一个节点。
let current = head;
let prev = null;
步骤2
定义记录 p1 指针的next的临时指针
const nextTemp = current.next;
步骤3
然后,我们编写一个函数来反转链表