- Fix doubly linked list's element's prev pointer when inserting

pull/52/head
Emir Pasic 9 years ago
parent 65ced7c422
commit e78a91731a

@ -259,18 +259,22 @@ func (list *List) Insert(index int, values ...interface{}) {
if i == 0 { if i == 0 {
list.first = newElement list.first = newElement
} else { } else {
newElement.prev = beforeElement
beforeElement.next = newElement beforeElement.next = newElement
} }
beforeElement = newElement beforeElement = newElement
} }
oldNextElement.prev = beforeElement
beforeElement.next = oldNextElement beforeElement.next = oldNextElement
} else { } else {
oldNextElement := beforeElement.next oldNextElement := beforeElement.next
for _, value := range values { for _, value := range values {
newElement := &element{value: value} newElement := &element{value: value}
newElement.prev = beforeElement
beforeElement.next = newElement beforeElement.next = newElement
beforeElement = newElement beforeElement = newElement
} }
oldNextElement.prev = beforeElement
beforeElement.next = oldNextElement beforeElement.next = oldNextElement
} }
} }

Loading…
Cancel
Save