У меня есть следующий класс ListNode
class ListNode {
constructor(val) {
this.val = val
this.next = null
}
}
Я пытаюсь удалить повторяющиеся значения, сохраняя значения в га sh, и если эти значения присутствуют, то новый узел не должен быть сформирован с этими ценностями; однако все, что я делаю, - это копия настоящего списка. Я не уверен, что я делаю неправильно в моем ха sh. Я неправильно структурирую логи c?
const deleteDuplicates = (head) => {
let newNode = new ListNode('dummy')
let current = newNode
let headHash = {}
while (head) {
if (headHash[head.val] === undefined) {
if (newNode.next === null) newNode.next = new ListNode(head.val)
else {
newNode = newNode.next
newNode.next = new ListNode(head.val)
}
}
headHash = (headHash[head.val] || 0) + 1
console.log(headHash, head.val);
head = head.next
}
return current.next
}
const l = new ListNode(1)
l.next = new ListNode(1)
l.next.next = new ListNode(2)
const l2 = new ListNode(1)
l2.next = new ListNode(1)
l2.next.next = new ListNode(2)
l2.next.next.next = new ListNode(3)
l2.next.next.next.next = new ListNode(3)
console.log(deleteDuplicates(l));
console.log(deleteDuplicates(l2));