单链表翻转问题
将链表 1 -> 2 -> 3 -> 4 -> 5 -> null 翻转
代码1
newHead := new(Node)
newHead = nil
p := head
for p != nil {
tmp := p
p = p.Next
tmp.Next = newHead
newHead = tmp
}
代码2
newHead := new(Node)
newHead = nil
p := head
for p != nil {
tmp := p
tmp.Next = newHead
newHead = tmp
p = p.Next
}
为什么代码2 不能翻转链表???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
主要看
:=
这个符号的意义,如果表示浅拷贝的话,那么代码2里面执行tmp.Next=newHead
后,p.Next
的值被改变了,所以跟代码1的运行结果不同了。