Nag*_*tla 5 java linked-list singly-linked-list
在下面的代码中,即使在删除节点(20)之后,如果我尝试通过伪装将已删除的节点作为头部来打印所有节点,则它将打印所有节点以及已删除的节点.有人可以解释这种行为以及Java中的垃圾收集吗?即使删除的节点(20)没有下一个元素,它如何能够迭代所有节点?
节点:
class Node{
int nodeint;
Node next;
public Node(int nodeint){
this.nodeint = nodeint;
}
}
Run Code Online (Sandbox Code Playgroud)
链表:
public class linkedlist{
Node head;
//Node next;
public linkedlist(Node obj){
this.head = obj;
}
public Node addnodes(int news){
Node newlink = new Node(news);
newlink.next = head;
head = newlink;
return head;
}
public void printAllNodes(Node obj){
Node current = obj;
while(current!=null){
System.out.println(current.nodeint);
current = current.next;
}
}
public Node remove(){
Node temp = head;
head = head.next;
return temp;
}
public void printHead(){
System.out.println("This is the present head node"+head.nodeint);
}
public static void main(String [] args){
Node obj1 = new Node(2);
Node obj2 = new Node(3);
Node obj3 = new Node(4);
obj1.next = obj2;
obj2.next = obj3;
obj3.next = null;
linkedlist newobj = new linkedlist(obj1);
Node obj = null;
obj = newobj.addnodes(5);
obj =newobj.addnodes(20);
//System.out.println(obj.nodeint);
newobj.printAllNodes(obj);
obj = newobj.remove();
System.out.println("A node is deleted");
newobj.printAllNodes(obj);
newobj.printHead();
}
}
Run Code Online (Sandbox Code Playgroud)
输出此代码:
20
五
2
3
4
节点已删除
20
五
2
3
4
这是目前的头节点:5
归档时间: |
|
查看次数: |
486 次 |
最近记录: |