как удалить Удалить все элементы из связанного списка целых чисел, которые имеют значение val.
пример
Input: 1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5
Я пробовал вот так
var removeElements = function (head, val) {
if (!head) return null;
let curr = head,
pre = curr;
while (curr != null) {
if (curr.val == val) {
pre.next = curr.next
curr = curr.next;
} else {
pre = curr;
curr = curr.next;
}
}
return head
};
my Первый тестовый сценарий работает нормально
console.log(JSON.stringify(removeElements(
{
"val": 1,
"next": {
"val": 2,
"next": {
"val": 6,
"next":
{
"val": 3,
"next":
{
"val": 4,
"next":
{
"val": 5, "next":
{"val": 6, "next": null}
}
}
}
}
}
}
, 6)));
// working fine
// expected 1->2->3->4->5 or [1,2,3,4,5]
, но он не работает в случае ниже
console.log(JSON.stringify(removeElements(
{
"val": 1,
"next": {
"val": 1,
"next": null
}
}, 1)));
// getting {"val":1,"next":null} or [1]
// expected null or []
. Пожалуйста, предложите, как этого добиться. Я сохраняю текущий узел в предыдущем узле