我正在try 从头开始在Golang实现LinkedList操作.但我在处理删除第一个元素时发现了一个问题.我的方法是使用OOP风格,但第一个元素似乎没有被删除.这是我写的代码,
type LinkedList struct {
Value int
next *LinkedList
}
func (ll *LinkedList) Remove(index int) error {
pointer := ll
var pointerPrev *LinkedList = nil
current := 0
for current < index {
pointerPrev = pointer
pointer = pointer.next
current++
}
if pointer == ll {
ll = ll.next // this line is problematic
pointer = nil
} else {
if pointer.next == nil {
pointerPrev.next = nil
} else {
pointerPrev.next = pointer.next
pointer = nil
}
}
return nil
}
有没有建议我如何在不返回新的LinkedList指针的情况下实现这种删除方式?