我正在尝试从头开始在 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 指针吗?
HUWWW
相关分类