美文网首页
链表:两数相加

链表:两数相加

作者: aishenla | 来源:发表于2020-10-23 10:32 被阅读0次

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    示例:

    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

    输出:7 -> 0 -> 8

    原因:342 + 465 = 807

    代码:

    class Solution {
    
        public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    
            ListNode res=new ListNode();
    
            ListNode resTemp=res;
    
            int nextSum=0;
    
            int flag=0;
    
            //判断是否空
    
            while (l1!=null&&l2!=null){
    
                int sum;
    
                //第一次两个数相加,无需加上nextSum;
    
                if(flag==0){
    
                    sum=l1.val+l2.val;
    
                    res.val=sum%10;
    
                    nextSum=sum/10;
    
                    flag++;
    
                }else{
    
                    sum=l1.val+l2.val+nextSum;
    
                    resTemp.next=new ListNode(sum%10);
    
                    resTemp=resTemp.next;
    
                    nextSum=sum/10;
    
                }
    
                //指针后移
    
                l1 = l1.next;
    
                l2 = l2.next;
    
            }
    
            //遍历长的链表
    
            while(l1!=null){
    
                int sum=l1.val+nextSum;
    
                resTemp.next=new ListNode(sum%10);
    
                resTemp=resTemp.next;
    
                nextSum = sum / 10;
    
                l1 = l1.next;
    
            }
    
            while(l2!=null){
    
                int sum=(l2.val+nextSum);
    
                resTemp.next=new ListNode(sum%10);
    
                resTemp=resTemp.next;
    
                nextSum = sum / 10;
    
                l2 = l2.next;
    
            }
    
            //两个链表遍历完后如果nextSum不为零的情况
    
            if(nextSum!=0){
    
                resTemp.next=new ListNode(nextSum);
    
            }
    
            return res;
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:链表:两数相加

          本文链接:https://www.haomeiwen.com/subject/rtxvmktx.html