要使最后一个深拷贝后的链表输出为1234567,你需要更改CirDoublelyLists
类中的构造函数以及循环体。
请尝试以下更改:
public CirDoublelyLists(CirDoublelyLists<T> list) {
this();
DoubleNode<T> rear = this.head;
for (DoubleNode<T> rear1 = list.head.next; rear1 != list.head; rear1 = rear1.next) {
DoubleNode<T> add = new DoubleNode<T>(rear1.data, rear, this.head);
rear.next = add;
this.head.prev = add; // 这里修改为this.head.prev
rear = rear.next;
}
}
然后,在 main
方法中修改为:
System.out.println("原链表:" + list1.toString());
CirDoublelyLists<Integer> list2 = new CirDoublelyLists<Integer>();
for (int j = 6; j <= 7; j++) {
list2.insert(j);
}
System.out.println("深拷贝后的链表:" + list2.toString());
这样就可以得到期望的结果了。
内容由零声教学AI助手提供,问题来源于学员提问