主功能:
public static void main(String[] args) {
AdditionLL Alist = new AdditionLL();
AdditionLL Blist = new AdditionLL();
AdditionLL Rlist = new AdditionLL();
Alist.addNode(3);
Alist.addNode(7);
Alist.addNode(0);
Alist.addNode(4);
Alist.addNode(9);
Blist.addNode(5);
Blist.addNode(3);
Blist.addNode(2);
System.out.print("First list: ");
Alist.printLL(Alist.head);
Rlist.reverseLLtl(Rlist.head, null); // this works
System.out.println();
System.out.print("Second list: ");
Blist.printLL(Blist.head);
System.out.println();
Node Cnode = Rlist.addList(Alist.head, Blist.head, Rlist);
Rlist.reverseLLtl(Rlist.head, null); // THIS DOES NOT REVERSE THE ELEMENTS
System.out.print("Resultant list: ");
Rlist.printLL(Cnode);
}
添加列表功能:
Node addList(Node A, Node B, AdditionLL C) {
int res1 = 0;
int res2 = 0;
while(A != null) {
res1 = (res1 + A.data)*10;
A = A.next;
}
while(B != null) {
res2 = (res2 + B.data)*10;
B = B.next;
}
int result = res1 + res2;
result = result/10;
int data = 0;
while(result > 0) {
data = result % 10;
C.addNode(data);
result = (int)Math.floor(result/10);
}
return C.head;
}
}
我还应该如何调用反向函数?在 Rlist 上执行反向时,输出仅显示一个链接。我不明白在这两种情况下如何以不同的方式调用该函数。没有反向打印的 Rlist 完美。
代码是为:
输入: List1: 5->6->3 // 代表数字 365 List2: 8->4->2 // 代表数字 248 输出: 结果列表: 3->1->6 // 代表数字 613 解释: 365 + 248 = 613