java 链表 置为null,java – 将LinkedList节点设置为null

这段代码真正做的是将下一个节点复制到给定节点.净效果就好像当前节点被删除一样,但实际上它只是被下一个节点覆盖了.

也就是说,你要删除此列表中的B:

A -> B -> C -> D

结果列表如下所示:

+------+

A -> B(Ccopy) ---+ C -+-> D

现在,您无法对节点D执行此操作,因为没有要复制的下一个节点.

Why couldn’t I just,say,put a check in the method before the body to check if n.next was equal to null,and if so,just set n to be null and return true? Is there any reason I can’t just do that?

将n设置为null将不会执行任何操作. n只是对要删除的列表节点的引用.如果更改n,则实际上不会更改列表中的任何内容.例如,假设您要在同一列表中删除D.它看起来像这样:

n

|

v

A -> B -> C -> D

如果将n设置为null,则最终结果如下:

n---> null

A -> B -> C -> D

请注意,列表中没有任何内容发生变化.

在这种情况下删除D的唯一方法是修改C.next指向null.也就是说,你想要这个:

+----> null

A -> B -> C --+ D

这需要修改C,但是在单链表中,你没有简单的方法从D访问C.你必须从列表的开头搜索,直到找到节点x,使x.next == D.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值