我正在尝试使用 Java 实现 LinkedList,只是为了测试我的技能。我遇到了一个问题,我必须附加我创建的两个链表。我在这里陷入了一个无限循环。有什么办法可以改进代码并实现所需的输出?
个人/个人:
列表 A:4->3->2->1->0
列表 B:4->3->2->1->0
O/P 应该是:4->3->2->1->0->4->3->2->1->0
class List {
int val;
List next;
public List(int val) {
this.val = val;
}
public String toString() {
String output = "";
List current = this;
while (current != null) {
output += current.val + "->";
current = current.next;
}
return output + "NULL";
}
}
class AppendLinkedLists {
static List push(List list, int num) {
List newList = new List(num);
newList.next = list;
return newList;
}
static List appendLists(List listA, List listB) {
if (listA == null)
return listB;
else {
List tempList = listA;
while (tempList.next.next != null) {
tempList = tempList.next;
}
tempList.next.next = listB;
return listA;
}
}
public static void main(String[] args) {
List listA = new List(0);
listA = push(listA, 1);
listA = push(listA, 2);
listA = push(listA, 3);
listA = push(listA, 4);
List listB = listA;
System.out.println("Input List A : " + listA.toString());
System.out.println("Input List B : " + listB.toString());
listA = appendLists(listA, listB);
System.out.println("Combined Input Lists A and B : " + listA.toString());
}
}