А я не заметил - и ещё радовался, что быстро решил:
public void DeleteNode(ListNode node)
{
while (node.next != null)
{
node.val = node.next.val;
if (node.next.next == null)
{
node.next = null;
}
else
{
node = node.next;
}
}
}
Достаточно было одного раза... )
Интересно, почему такой способ не сделали обязательным к реализации? Обычно же "ищем ноду перед удаляемой..."