将自己设置为null-Java
我遇到了以下问题:将自己设置为null-Java,java,null,linked-list,Java,Null,Linked List,我遇到了以下问题: 在单独链表的中间删除一个节点,只对该节点进行访问。头没有给 现在有很多解决方案,当要删除的元素是最后一个节点时,它们都不起作用 为什么这行不通 public static void removeNode (Node n){ if(n.next == null){ //n is the last node n= null; return; } //handling general case here } 您需要将前一个节
在单独链表的中间删除一个节点,只对该节点进行访问。头没有给 现在有很多解决方案,当要删除的元素是最后一个节点时,它们都不起作用
为什么这行不通public static void removeNode (Node n){
if(n.next == null){ //n is the last node
n= null;
return;
}
//handling general case here
}
您需要将前一个节点中的引用设置为null,而不是将引用上一个节点的变量设置为null,如下所示:
if(n.next == null) {
prev.next = null;
return;
}
您需要将前一个节点中的引用设置为null,而不是将引用上一个节点的变量设置为null,如下所示:
if(n.next == null) {
prev.next = null;
return;
}
Java按值传递参数,因此将n设置为null在方法之外没有任何效果。这意味着当传递给列表的最后一个节点时,该方法实际上什么也不做。Java通过值传递参数,因此将n设置为null在方法之外没有任何效果。这意味着,当传递给列表的最后一个节点时,该方法实际上什么也不做。n是该方法的局部属性,因此更改其值不会影响列表本身。您需要修改上一个节点的下一个节点,您无权访问该节点。n是该方法的本地节点,因此更改其值不会影响列表本身。您需要修改上一个节点的下一个节点,而您无权访问该节点。+1以解释其不起作用的原因。你比我快了一步!为什么n.next=null工作?这不是也将n本地更改为方法吗?n指向的对象与调用方共享。请参见+1以了解其不起作用的原因。你比我快了一步!为什么n.next=null工作?这不是也将n本地更改为方法吗?n指向的对象与调用方共享。看见