Я пытаюсь сделать назначение LinkedList на ruby и столкнулся с трудностями при выполнении метода удаления , поэтому я искал в Google и получил код от метода удаления, Что я не могу понять, так это логи c, я не могу понять, как это работает, как работает логи c для ее удаления.
class Node
attr_accessor :value, :next_node
def initialize(value, next_node = nil)
@value = value
@next_node = next_node
end
end
class LinkedList
def add(number)
new_node = Node.new(number)
if @head.nil?
@head = new_node
@tail = new_node
else
@tail.next_node = new_node
@tail = new_node
end
end
def get(index)
#your code here
node = @head
while index > 0 && node
node = node.next_node
index -= 1
end
node.value
end
def add_at (index, number)
if @head.nil?
@head = Node.new(number)
@tail = Node.new(number)
else
first = @head
index -= 1
while index > 0 && first
first = first.next_node
index -= 1
end
old_next = first.next_node
first.next_node = Node.new(number)
first.next_node.next_node = old_next
end
end
def remove (index)
node = @head
index -= 1
while index > 0 && node
node = node.next_node
index -= 1
end
node.next_node = node.next_node.next_node
end
end