From e78a91731a87b80a4972e40b4b2f44c640f8df62 Mon Sep 17 00:00:00 2001 From: Emir Pasic Date: Sun, 5 Mar 2017 23:33:34 +0100 Subject: [PATCH] - Fix doubly linked list's element's prev pointer when inserting --- lists/doublylinkedlist/doublylinkedlist.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lists/doublylinkedlist/doublylinkedlist.go b/lists/doublylinkedlist/doublylinkedlist.go index c82575b..bd85b18 100644 --- a/lists/doublylinkedlist/doublylinkedlist.go +++ b/lists/doublylinkedlist/doublylinkedlist.go @@ -259,18 +259,22 @@ func (list *List) Insert(index int, values ...interface{}) { if i == 0 { list.first = newElement } else { + newElement.prev = beforeElement beforeElement.next = newElement } beforeElement = newElement } + oldNextElement.prev = beforeElement beforeElement.next = oldNextElement } else { oldNextElement := beforeElement.next for _, value := range values { newElement := &element{value: value} + newElement.prev = beforeElement beforeElement.next = newElement beforeElement = newElement } + oldNextElement.prev = beforeElement beforeElement.next = oldNextElement } }