牛客网遇到的最坑的题目了,说下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);