小编Mar*_* DM的帖子

将 nil 分配给指针

我正在尝试对列表实施 delete() 方法(没有 HEAD ref)

我发现我可以将参数修改为结构体。

func (l *LinkedList) Delete(n *Node) {
    if n.next == nil {
        n = nil
    } else {
        current := &n
        *n = *n.next
        *current = nil
    }

}
Run Code Online (Sandbox Code Playgroud)

“else”部分工作正常,但删除最后一个节点不会修改列表

尝试使用

*n = nil
Run Code Online (Sandbox Code Playgroud)

但后来我有编译错误。

不能在赋值中使用 nil 作为 Node 类型

在这个操场上完成的代码:

http://play.golang.org/p/Dhzyd7QHEw

pointers go

3
推荐指数
1
解决办法
5449
查看次数

标签 统计

go ×1

pointers ×1