题解 | #反转链表#

反转链表

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

相关推荐

目前感觉简历还有很多问题,希望各位能不吝赐教以及非常感谢这位老哥——@黑皮白袜臭脚体育生 的项目,学完一遍感觉受益颇丰
小菜鸡只想转正:校友,我的建议是冗余的最好去掉,突出重点,比如985,211双一流的提示,专业技能调整到个人项目之后的位置。专业技能感觉写的太细了?占用篇幅最好腾出一点给项目经历,如果没写手机号和邮箱,记得加上。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务