diff --git a/src/mutable_list.jl b/src/mutable_list.jl index cf085d59..31840fc2 100644 --- a/src/mutable_list.jl +++ b/src/mutable_list.jl @@ -152,9 +152,9 @@ end function Base.append!(l1::MutableLinkedList{T}, l2::MutableLinkedList{T}) where T l1.node.prev.next = l2.node.next # l1's last's next is now l2's first - l2.node.prev.next = l1.node # l2's last's next is now l1.node l2.node.next.prev = l1.node.prev # l2's first's prev is now l1's last - l1.node.prev = l2.node.prev # l1's first's prev is now l2's last + l1.node.prev = l2.node.prev # l1's last is now l2's last + l2.node.prev.next = l1.node # l2's last's next is now l1.node l1.len += length(l2) # make l2 empty l2.node.prev = l2.node diff --git a/test/test_mutable_list.jl b/test/test_mutable_list.jl index d3bf7491..819f5215 100644 --- a/test/test_mutable_list.jl +++ b/test/test_mutable_list.jl @@ -108,6 +108,10 @@ push!(l4, n+1:2n...) @test l4 == MutableLinkedList{Int}(1:2n...) @test collect(l4) == collect(MutableLinkedList{Int}(1:2n...)) + l5 = MutableLinkedList{Int}(1:n...) + l6 = MutableLinkedList{Int}() + append!(l5, l6) + @test l5.node.prev !== l5.node.prev.next end @testset "delete" begin