牛客网遇到的最坑的题目了,说下bug在哪里吧!!!

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

http://www.nowcoder.com/questionTerminal/f96cd47e812842269058d483a11ced4f

终于跑过了,烦死了,他们样例里面的输入跟最终测试集的输入格式不一样!!!!

function ListNode(value) {
    this.value = value;
    this.next = null;
}

function reader(str) {
    let i = 0;
    let lineStrs = str.split(' ');
    return function() {
        return Number.parseInt(lineStrs[i++]);
    };
}

let result = '';
let line;
let firstLine = true;
while (line = readline()) {
    if (!firstLine) {
        result += '\n';
    }
    let gextNextInt = reader(line);
    firstLine = false;
    let count = gextNextInt();
    let topNodeValue =gextNextInt();
    let map = {};
    let topNode = new ListNode(topNodeValue);
    map[topNodeValue] = topNode;
    for (let i = 0; i < count - 1; i++) {
        let newNodeValue = gextNextInt();
        let newNode = new ListNode(newNodeValue);
        map[newNodeValue] = newNode;
        let oldNodeValue = gextNextInt();
        let oldNode = map[oldNodeValue];
        if (oldNode.next === null) {
            oldNode.next = newNode;
        } else {
            newNode.next = oldNode.next;
            oldNode.next = newNode;
        }
    }
    let toDelete = gextNextInt();
    if (topNode.value === toDelete) {
        topNode = topNode.next;
    } else {
        let next = topNode;
        while(next.next !== null) {
            if (next.next.value === toDelete) {
                next.next = next.next.next;
            }
            next = next.next;
        }
    }
    let next = topNode;
    let oneLineResult = '';
    while(next !== null) {
        oneLineResult += next.value + ' ';
        next = next.next;
    }
    result += `${oneLineResult}`;
}

print(result);
全部评论

相关推荐

挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务