题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

function ListNode(x){
    this.val = x;
    this.next = null;
}
//递归
/*
function ReverseList(pHead)
{
    //空链表 或者只有一个节点的情况 终止条件就是链表为空,或者是链表没有尾结点的时候,直接返回
    if(!pHead || !pHead.next) return pHead;
    let newhead = ReverseList(pHead.next);
    pHead.next.next = pHead; //曾经为头部的phead的下一个节点的next 变为phead
    pHead.next = null;//曾经为头部的phead 变为尾
    return newhead;
}
*/
function ReverseList(pHead)
{
    if(!pHead || !pHead.next  ) return pHead;
    let previous = new ListNode(pHead.val);//newTail;
    let node = pHead.next;
    let temp;
    while(node!==null){
        temp = new ListNode(node.val);
        temp.next = previous;
        previous = temp;
        node = node.next
    }
    return temp
}

module.exports = {
    ReverseList : ReverseList
};
 

全部评论

相关推荐

点赞 评论 收藏
分享
狠赚笔第一人:学计算机自己不努力怪大环境?我大一就拿到了美团大厂的offer,好好看看自己有没有努力查看图片
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务