题解 | #反转链表#

反转链表

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,
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务