将自己设置为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指向的对象与调用方共享。看见