RosettaCodeData/Task/Singly-linked-list-Element-insertion/Julia/singly-linked-list-element-insertion.julia
2018-06-22 20:57:24 +00:00

21 lines
516 B
Text

function Base.insert!(ll::LinkedList{T}, index::Integer, item::T) where T
if index == 1
if isempty(ll)
return push!(ll, item)
else
ll.head = Node{T}(item, ll.head)
end
else
nd = ll.head
while index > 2
if nd.next isa EmptyNode
throw(BoundsError())
else
nd = nd.next
index -= 1
end
end
nd.next = Node{T}(item, nd.next)
end
return ll
end