[路飞]_反转链表

109 阅读1分钟

题目介绍

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

解题思路

  1. 当前节点的next要指向上一个节点
  2. 当前节点指向上一个节点的时候,会导致链表断开,没法进行滑动,需要用个变量存储起来,所以要先存起来下个节点,在把当前节点的next指向上个节点
var reverseList = function(head) {
    let cur = head
    let pre = null
    while(cur) {
        // 暂存下个节点,这样指针才可以滑动
        let nxt = cur.next
        // 当前节点的next指向上一个节点,断开了与下个节点的连接
        cur.next = pre
        // 此次循环结束前 保存当前节点为上一个节点
        pre = cur
        // 滑到下一个节点
        cur = nxt
    }
    return pre
};