У меня проблемы с написанием метода, который добавляет все элементы списка параметров метода в конец другого списка.Предполагается, что метод возвращает true, если список был изменен, и false в противном случае.
Например, если исходный список был 1-> 6-> 5, а другой список 3-> 8-> 2.После вызова список теперь 1-> 6-> 5-> 3-> 8-> 2.
У меня проблемы с булевыми операторами возврата, так как я запутался, как они связаны с логикой списка.Я также не знаю, как далеко должны двигаться указатели, чтобы добавлять списки.Все это можно сделать за один цикл, но я не знаю как.
public boolean appendList(DynamicList othrList) {
for (DynamicNode tmp = head; tmp != null; tmp.getNext()) {
if(tmp == null) {
DynamicNode ex = otherList.getList;
tmp.setNext(ex);
}
return true;
}
return false;
}
Полный код:
public class DynamicNode {
private Object info; // the data in the node
private DynamicNode next; // refers to the next node on the list
public DynamicNode(Object x, DynamicNode n) {
info = x;
next = n;
}
public Object getInfo() { return info; }
public DynamicNode getNext() { return next; }
public void setInfo(Object x) { info = x; }
public void setNext(DynamicNode n) { next = n; }
public String toString() { return info.toString(); }
}
class DynamicList {
private DynamicNode head;
public DynamicList() { head = null; }
public DynamicList(DynamicNode head) { this.head = head; }
public boolean isEmpty() { return head == null; }
public DynamicNode getList() { return head; }
// The problem
public boolean appendList(DynamicList othrList) {
for (DynamicNode tmp = head; tmp != null; tmp.getNext()) {
if(tmp == null) {
DynamicNode ex = otherList.getList;
tmp.setNext(ex);
}
return true;
}
return false;
}
}