1

主功能:

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

4

0 回答 0