Вы можете выполнить отложенное разделение, когда вы устанавливаете узлы, которые должны быть отделены от списка с помощью флага, а затем удаляете их при следующем правильном обходе. Узлы, установленные для разделения, должны быть правильно обработаны кодом, сканирующим список.
Полагаю, вы также можете просто снова просмотреть список с самого начала, пока не найдете то, что указывает на ваш элемент в списке. Вряд ли оптимально, но, по крайней мере, гораздо лучшая идея, чем отсроченное разделение.
В общем, вы должны знать указатель на предмет, с которого вы только что пришли, и вы должны передавать его.
(Правка: Ick, за то время, которое мне понадобилось, чтобы напечатать полный ответ, три миллиарда человек охватили почти все вопросы, которые я собирался упомянуть.: ()