题解 | #反转链表#

反转链表

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

1. 思路分析

创建链表是将节点依次插入到链表尾部,而反转链表的话,只需要将节点取出来放到头部。为了方便可以做一个哨兵节点dummydummy,每次将节点插入到dummydummy后即可,最后返回dummy.nextdummy.next

2. 代码实现

function ListNode(x){
    this.val = x;
    this.next = null;
}
function ReverseList(head) {
    if(!head || !head.next) return head;
    const dummy = new ListNode();
    let cur = head;
    while(cur) {
        if(cur == head) {
            dummy.next = new ListNode(cur.val);
        }else {
            let node = new ListNode(cur.val);
            node.next = dummy.next;
            dummy.next = node;
        }
        cur = cur.next
    }
    return dummy.next;
}
module.exports = {
  ReverseList: ReverseList,
};
全部评论

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
如题,这操作。。。。
真烦好烦真烦:既想享受国家的招聘应届生福利,又不想培养新人,我只能说这种企业的ld太过分了
投递美的集团等公司6个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务