题解 | #反转链表#使用JavaScript解题
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
反转链表就是将当前节点的next指针改为指向前一个节点。所以我们只需要将链表的头部指向null,第一个节点的next指向head,第二个节点的next指向第一个节点这样一次类推,我们可以用一个变量 current存储当前节点;pre用来存储上一个节点,这样依次修改节点的next指向,直到当前节点为空
拆分为如下步骤:
-
第一步:初始化上一个节点pre为空;将头结点赋值给当前节点current
-
第二步:当当前节点有值时进入循环:循环内主要是修改next指向
- 获取当前节点的下一个节点 next
- 令当前节点指向 上一个节点pre
- 当前节点变成上一个节点
- 下一个节点 变成当前节点;开始再次操作当前节点,修改当前节点的指向
-
第三步:经过循环后,pre就变成了头结点,所以返回pre
var reverseList = function(head) { let pre = null let current = head while(current !== null){ let next = current.next // 下一个节点 current.next = pre pre = current current = next } return pre };