剑指offer JS题解 (15)反转链表

题目描述

输入一个链表,反转链表后,输出新链表的表头。

解题思路

一个基础题,考察对链表的操作。
伪代码:
1、初始化一个空的链表头部pre,和存放剩余链表的next指针;
2、用传入的链表头部参数进行链表的遍历,进行如下过程:

①:用next指针指向剩余链表的头部,进行保存;
②:让当前遍历到的链表结点与链表断开,再去连接链表头部pre(模仿栈的结构,以pre为底部堆叠);
③:接着更新pre,让它指向当前结点;
④:让链表头部参数指向下一个结点。

3、返回新头部,结束程序。

Code

function ReverseList(pHead)
{
    // write code here
    let pPre=null,
        pNext=null;
    while(pHead!==null){
        pNext=pHead.next;
        pHead.next=pPre;
        pPre=pHead;
        pHead=pNext;
    }
    return pPre;
}

运行环境:JavaScript (V8 6.0.0)
运行时间:17ms
占用内存:5332k

猜你喜欢

转载自blog.csdn.net/qq_40340478/article/details/106157751
今日推荐