我正在尝试编写一种方法来删除链接列表中的最后一个节点(用于学习如何修改链接列表..我没有使用 java 库 LinkedList 类)..我试图处理传递的链接列表只有的用例一个节点。
但是,当我尝试在删除之前和之后打印链接列表时,它会提供与未删除节点相同的输出。
class NodeProcessing{
public static void removeLastNode(Node f){
if (f==null) return;
if(f.next == null){//if linkedlist has single node
f = null;
return;
}
...
}
public static void showList(Node first){
System.out.println("linked list=");
for(Node x = first; x != null; x = x.next){
System.out.print(x.item+" ,");
}
System.out.println();
}
public static void main(String[] args) {
Node a = new Node();
a.item = "one";
showList(a);
removeLastNode(a);
showList(a);
}
}
class Node{
String item;
Node next;
}
输出:
链表=一个,
链表=一个,
更新:当我使用调试器时,我可以看到里面Node a
有main()
地址:Node@a61164
并且Node f
里面removeLastNode()
也有:Node@a61164