题解 | #从单向链表中删除指定值的节点#

从单向链表中删除指定值的节点

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

let input = readline().split(' ').map(Number)
//节点类
class ListNode{
    constructor(val){
        this.val = val
        this.next = null
    }
}
//链表类
class LinkList{
    constructor(val){
        this.head = new ListNode(val)
        this.size = 0
    }
}
//插入
LinkList.prototype.insert = function(value,target){
    let node = this.head
    while(node){
        if(node.val==target){
            let tmp = new ListNode(value)
            tmp.next = node.next
            node.next = tmp
            break
        }else{
            node = node.next
        }
    }
}
//删除某个值的节点
LinkList.prototype.delete = function(value){
    let node = this.head
    while(node.val==value){
        node = node.next
    }
    let pre = node
    let curr = pre.next
    while(curr){
        if(curr.val == value){
            pre.next = curr.next
            curr = pre.next
        }else{
            pre = curr
            curr = curr.next
        }
    }
}

let list = new LinkList(input[1])
let move = input.slice(2,input.length-1)
for(let i=0;i<move.length;i=i+2){
    list.insert(move[i],move[i+1])
}
list.delete(input[input.length-1])
let res = []
let head = list.head
while(head){
    res.push(head.val)
    head = head.next
}
print(res.join(' '))
JavaScript,链表解法
全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务