题解 | #反转链表#使用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
};


#JavaScript##字节面试笔试手撕算法#
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务