У меня есть линейный связанный список, состоящий из узлов:
class Node{
Object data;
Node link;
public Node(Object pData, Node pLink){
this.data = pData;
this.link = pLink;
}
public String toString(){
if(this.link != null){
return this.data.toString() + this.link.toString();
}else{
return this.data.toString() ;
}
}
public void inc(){
this.data = new Integer((Integer)this.data + 1);
}
public Node copy(){
return new Node(this.data, this.link.copy());
}
}
Я хочу сделать глубокую копию списка. Затем увеличьте каждый узел исходного списка и выведите оба. Я не знаю, если код правильный.
class Aufg1{
public static void main(String args[]){
Node node3 = new Node(new Integer(3), null);
Node node2 = new Node(new Integer(2), node3);
Node node1 = new Node(new Integer(1), node2);
System.out.println(node1.copy().toString());
System.out.println(node1.toString());
}
}
... дает мне всего 123 за второй вывод, но что-то не так с копией Есть идеи?
Обновление:
public Node copy(){
if(this.link != null){
return new Node(new Integer((Integer)this.data), this.link.copy());
}else{
return new Node(new Integer((Integer)this.data), null);
}
}