deleteNodeNoPointer(node) {
node.val = node.next.val;
node.next = node.next.next;
return node;
}
Как передать указатель узла односвязного списка в эту функцию
например, если first является объектом этого класса, и у нас есть связанный список
1-> 2-> 3-> 4-> 5-> null; и мы должны отправить указатель числа 3 на функцию выше ..
first.deleteNodeNoPointer(---POINTER--OF--NODE 3--IN--SINGLYLINKEDLIST);



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используемая у вас функция требует, чтобы вы передали ссылку на узел для удаления. Таким образом, вы должны начать с заголовка списка и пройти по списку, получая каждый узел к следующему узлу, пока не дойдете до того, который хотите удалить. Вы, вероятно, будете делать это в цикле, пока не найдете узел, который обычно удовлетворяет какому-либо условию. Но если вы произвольно захотите удалить третий узел, это будет head.next.next;
class ListItem{
constructor(val, next = null){
this.val = val;
this.next = next;
}
}
/* work to make the list */
let head = new ListItem(1);
let cur = head;
for(let i = 2; i < 10; i++){
cur.next = new ListItem(i);
cur = cur.next;
}
/* prints the list for demo */
function printList(node){
while(node != null){
console.info(node.val);
node = node.next;
}
}
function deleteNodeNoPointer(node) {
node.val = node.next.val;
node.next = node.next.next;
return node;
}
console.info('before deletion');
printList(head);//list is setup
let thirdNode = head.next.next;//get the third node
deleteNodeNoPointer(thirdNode);//remove the third node
console.info('after deletion');
printList(head);Обратите внимание, что если у вас действительно есть голова, удаление узла из списка может быть лучше достигнуто путем присвоения значения next родительского элемента удаленного узла, значения, хранящегося в next удаленного узла;
nodeBefore.next = nodeBefore.next.next;
Поскольку функция deleteNodeNoPointer является своего рода взломом этого подхода, предполагается, что у вас нет доступа к родительскому узлу. В любом случае вам нужна переменная, которая содержит ссылку на узел для удаления, а затем передает ее в функцию.
Таким образом, я могу получить указатель, используя this.head.next.next в javascript ... Я действительно хотел сделать это geeksforgeeks.org/…