讨论/算法和数据结构/求两个正整数的和,数据结构为链表(Java语言)/
求两个正整数的和,数据结构为链表(Java语言)

求两个正整数的和,数据结构为链表,不允许改变数据结构。

1->2->3->4
      3->4
输出
1->2->6->8

有人知道怎么做么?仅限 Java 语言,本人只看得懂 Java,谢谢啦!

展开讨论
licl发起于 2019-08-14
最近编辑于 2019-08-15
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        Stack<Integer> stack1=new Stack<>();
        while (l1!=null){
            stack1.push(l1.val);
            l1=l1.next;
        }
        Stack<Integer> stack2=new Stack<>();
        while (l2!=null){
            stack2.push(l2.val);
            l2=l2.next;
        }
        Stack<Integer> stackans=new Stack<>();
        int temp;
        int upper=0;
        while (!stack1.empty()&&!stack2.empty()){
            temp=stack1.pop()+stack2.pop()+upper;
            upper=temp/10;
            temp=temp%10;
            stackans.push(temp);
        }
        while (!stack1.empty()){
            temp=stack1.pop()+upper;
            upper=temp/10;
            temp=temp%10;
            stackans.push(temp);
        }
        while (!stack2.empty()){
            temp=stack2.pop()+upper;
            upper=temp/10;
            temp=temp%10;
            stackans.push(temp);
        }
        if (upper!=0)stackans.push(upper);
        ListNode root=new ListNode(stackans.pop());
        ListNode templist=root;
        while (!stackans.empty()){
            templist.next=new ListNode(stackans.pop());
            templist=templist.next;
        }
        return root;
        }

不对列表中的节点进行翻转的做法。

原题下面有不少好的做法。

展开全部 4 讨论