题解 | #反转链表#

反转链表

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

相关推荐

双非阴暗爬行:我来看看笑死我了,这名字取得好想笑(没有不好的意思)
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务