要使代码不报错且不添加其他方法,可以将 insert 方法以外的程序中使用到的 DoubleNode<T> 类改为 DoubleNode。以下是修改后的代码:
”`java
public class DoublyList
public DoubleNode head;
public DoublyList() {
this.head = new DoubleNode();
this.head.prev = null;
this.head.next = null;
}
public boolean isEmpty() {
return this.head.next == null;
}
public String toString() {
String str = this.getClass().getName() + "(";
DoubleNode p = this.head.next;
while (p != null) {
str += p.data.toString() + ((p.next != null) ? "," : "");
p = p.next;
}
return str + ")";
}
public DoubleNode insert(int i, T x) {
if (x == null)
return null;
DoubleNode front = this.head;
for (int j = 0; front.next != null && j < i; j++)
front = front.next;
DoubleNode q = new DoubleNode(x, front, front.next);
if(front.next!=null)
front.next.prev=q;
front.next=q;
return q;
}
public DoubleNode insert(T x) {
if (x == null)
return null;
DoubleNode rear=new DoubleNode<>(x,this.head.prev,null);
rear.prev=this.head.prev;
head.prev=rear;
return rear;
}
public static void main(String[] args) {
DoublyList<Integer> list1 = new DoublyList<Integer>();
DoublyList<Integer> list2 = new DoublyList<Integer>();
for (int i = 1; i <= 5; i++)
list1.insert(i);
for (int i = 6; i <= 10; i++)
list2.insert(i);
System.out.println(list1.toString());
System.out.println(list2.toString());
list1.addAll(list2);
System.out.println(list1.toString());
}
}
“`
内容由零声教学AI助手提供,问题来源于学员提问




