题解 | #反转链表#

反转链表

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

通过将每个结点所包含的信息取出来,通过unshif方法存储到数组里面

然后在创建一个变量headNode,并且将数组首位元素赋值给它,同时将headNode赋值给另外一个变量flag来保存当前的头指针信息

遍历数组的所有信息,以headNode作为指针,将所有结点信息连接起来,最后将头结点flag返回即可

    // write code here
    if(!head) {
        return null
    }
    let arr = [];
    let flag = head;
    let headNode = head;
    let newNode = new ListNode()
    //抽出数据
    while(flag) {
        arr.unshift(flag)
        flag = flag.next
    }
    flag = head
    headNode = arr[0]
    flag = headNode
    //重置链表
    for(let i=1;i<arr.length;i++) {
        newNode=arr[i]
        headNode.next = newNode
        headNode = headNode.next
    }
    headNode.next = null
    return flag
}
全部评论

相关推荐

06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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