请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

波波老师,关于prev的使用我还是没明白,它只是方法里面的一个对象,使用完方法后,head还是没动啊,那不是相当于没插入节点嘛

正在回答

1回答

可以先理解在链表末尾插入元素。


我们先通过遍历的方式,让prev指向链表的最后一个节点。之后,prev->next连接上了新的节点。是的,函数结束以后,prev这个“指针”消失了,但是在这个过程中,prev所指向的内存的next被改变了。所以,head所指向的这个节点,一直遍历下去,也被改变了。


注意,这和改变prev有本质区别。如果是prev=x,只是改变prev的指向,函数结束后,prev丢失了,他指向什么都没有保存住。但prev.next=x,改变的是prev所指向的那个内存的next,函数结束以后,prev这个“指针”也消失了,但prev所指向的内存的next被改变了。


在链表中间插入节点同理。


对这一点有疑问,你可能还是对Java语言中,到底什么是引用,什么引用所指的那个真正的内存有疑问:)再仔细体会一下:)


加油!:)

2 回复 有任何疑惑可以回复我~
  • 提问者 爱西瓜同志 #1
    谢谢老师,有点明白了,我在好好悟悟,真的很感谢老师的回答,之前一直卡在这里,现在终于能在继续前进了
    回复 有任何疑惑可以回复我~ 2018-11-15 09:53:01
  • liuyubobobo 回复 提问者 爱西瓜同志 #2
    继续加油!:)
    回复 有任何疑惑可以回复我~ 2018-11-15 10:13:08
  • 提问者 爱西瓜同志 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-11-15 10:32:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信