波波老师,关于prev的使用我还是没明白,它只是方法里面的一个对象,使用完方法后,head还是没动啊,那不是相当于没插入节点嘛
来源:4-2 在链表中添加元素
爱西瓜同志
2018-11-15
写回答
1回答
-
可以先理解在链表末尾插入元素。
我们先通过遍历的方式,让prev指向链表的最后一个节点。之后,prev->next连接上了新的节点。是的,函数结束以后,prev这个“指针”消失了,但是在这个过程中,prev所指向的内存的next被改变了。所以,head所指向的这个节点,一直遍历下去,也被改变了。
注意,这和改变prev有本质区别。如果是prev=x,只是改变prev的指向,函数结束后,prev丢失了,他指向什么都没有保存住。但prev.next=x,改变的是prev所指向的那个内存的next,函数结束以后,prev这个“指针”也消失了,但prev所指向的内存的next被改变了。
在链表中间插入节点同理。
对这一点有疑问,你可能还是对Java语言中,到底什么是引用,什么引用所指的那个真正的内存有疑问:)再仔细体会一下:)
加油!:)
242018-11-15
相似问题