题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路
一个基础题,考察对链表的操作。
伪代码:
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