Java 关于Linked List 数据结构 remove方法

这个remove方法用来删除链表data里的某个item可见倒数第三行代码:node.next=node.next.next;这句把新建的node链表里的目标item删除... 这个remove方法用来删除链表data里的某个item
可见倒数第三行代码: node.next = node.next.next;
这句把新建的node链表里的目标item删除了,但是这不是只删除的方法里新建的临时node的item吗,这样原本链表data里的数据没有被更改吧。
但这是老师上课讲的例子,应该是可行的?可为什么没有修改data的内容只修改了新建链表node的内容?
展开
 我来答
百度网友1c23319
2015-06-12 · TA获得超过126个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:55.2万
展开全部
node其实就是data,因为Node<E> node=data并没有使用new关键字,事实上node和data指向的是同一块内容区域,也就是说只要两者中的一个改变了值,另一个的值也会改变,所以无论修改哪一个对象的值都行。
更多追问追答
追问
可是这样的话,while循环已经把node的开头移动到item位置了,如果data链表也是这样的话岂不是item前面的所有的也都没了?
追答
我之前说的不准确,while循环执行的内容你可以理解为是:node=data.next,
这个循环的作用事实上是在data中找到与item相等的元素,执行完之后node.next就是那个与item相等的元素,然后用node.next.next的值将node.next覆盖,也就相当于删掉了node.next这个值,那么与item相等的元素也就被删掉了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式