У меня есть двойной связанный список со многими элементами списка. так что я могу использовать item.next, item.prev и т. д. (например, item.next.prev.prev.next.prev также будет работать)
Я хочу поменять местами два элемента, поэтому сначала мне нужно сохранить следующий и предыдущий из элемента A:
Item aprev = a.prev;
Item anext = a.next;
Теперь я хочу поменять b на:
a.next = b.next;
a.prev = b.prev;
a.next.prev = a;
a.prev.next = a;
Теперь мне нужно поменять местами a и b, чтобы я использовал мои предыдущие сохраненные элементы:
b.next = aprev;
b.prev = anext;
...
Теперь у меня проблема! aprev это a.prev, который теперь b.prev! так что предмет зацикливается на своем ...
что я могу сделать, чтобы поменять местами эти элементы ?? Мне нужен какой-то временный элемент, но как, когда указатель на объект исчез, когда я перезаписываю его?