Запознат съм с общия начин за премахване на възел от двойно свързан списък в Python като този:
current.prev.next = current.next
current.next.prev = current.prev
current.next = None
current.prev = None
Имам възел, наречен "текущ", някъде в средата на свързан списък. Целта ми е да премахна възела и новият "текущ" да стане възелът след него. Написах код, който постига това, но оставя някои безполезни препратки да лежат наоколо.
current = current.next
current.prev.prev.next = current
current.prev = current.prev.prev
От тук списъкът е в правилния ред и никакви препратки не сочат към премахнатия възел, но премахнатият възел все още има своите .next и .prev препратки, сочещи обратно към списъка. Това ми изглежда като лош код, но тъй като нямам препратки към премахнатия възел, не знам как да получа достъп до него, за да ги премахна.
Проблем ли са изобщо тези препратки? Ако е така, какво е решението?