BM1 反转链表 js

解法一:

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function ReverseList(pHead)
{
    let temp = null
    let newcurr = null
    while(pHead){
        newcurr = pHead
        pHead = pHead.next
        //这一步必须在下一步之前,因为上一步赋值的时候是把地址赋过来了,
        //如果先让newcurr的next指针发生改变,那么原本的pHead的next也会被改变,
        //所以先让curr指向下一个节点
        newcurr.next = temp
        temp = newcurr
    }
    return newcurr
}
module.exports = {
    ReverseList : ReverseList
};
        

运行时间:81ms
占用内存:8328KB

主要思路:逆着创建链表,先创建一个空的尾部,然后依次往前创建新的节点,连接前后的节点

你可能感兴趣的:(牛客,javascript,链表)