我正在尝试使用
Java实现LinkedList,只是为了测试我的技能.我遇到了一个问题,我必须附加两个我创建的链表.我在这里进入一个无限循环.有什么办法可以改进代码并实现所需的输出吗?
I / P:
列表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());
}
}