【发布时间】:2014-10-23 16:31:37
【问题描述】:
我正在尝试实现一种克隆双链表的方法。我正在尝试根据要求进行递归。
我认为它克隆正确,但是当我尝试将另一个元素添加到列表末尾时,它被添加到原始队列而不是克隆。
这是我调用方法并进行克隆的主要部分:
doublelinkedlist<Integer> aux=new doublelinkedlist<Integer>();
doublelinkedlist<Integer> aux2=new doublelinkedlist<Integer>();
aux.addRight(10);
aux.addRight(11);
aux.addRight(9);
aux.addRight(12);
//aux2.addRight(12);
aux2 = (doublelinkedlist<Integer>) aux.clone();
aux2.RemoveRight();
System.out.println("Original Queue: "+aux.toString());
System.out.println("Copy queue: "+aux2.toString());
这是DoubleLinkedList的克隆方法:
public Object clone(){
doublelinkedlist copia = null;
try{
copia = (doublelinkedlist)super.clone();
if (left != null){
copia.left = (node<E>)left.clone();
}
}catch (CloneNotSupportedException e){
return null;
}
return copia;
}
这是节点类的克隆:
public Object clone(){
node<E> copia = null;
try{
copia = (node<E>)(super.clone());
if (next != null){
copia.next = (node<E>)(next.clone());
copia.prev = copia;
}
}catch (CloneNotSupportedException e){
return null;
}
return copia;
}
【问题讨论】:
-
您的问题找到解决方案了吗?
标签: java recursion linked-list clone nodes