Java 我还应该如何调用反向函数?在Rlist上执行反转时,输出仅显示一个链接
主要功能:Java 我还应该如何调用反向函数?在Rlist上执行反转时,输出仅显示一个链接,java,list,add,reverse,geektool,Java,List,Add,Reverse,Geektool,主要功能: 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
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;
}
addList函数:
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完美无瑕
该代码用于:
输入:
列表1:5->6->3//表示数字365
清单2:8->4->2//表示数字248
输出:
结果列表:3->1->6//表示数字613
说明:365+248=613