两个数相加

简介: 两个数相加

image.png


此题目不算难,但是要将情况考虑全面


/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if(l1==null){
            return l2;
        }
        if(l2==null){
            return l1;
        }
        //进位的数字
        int carry=0;
        ListNode head=new ListNode(-1);
        ListNode pre=head;
        while(l1!=null&&l2!=null){
            int number=l1.val+l2.val+carry;
            carry=number/10;
            ListNode node=new ListNode(number%10);
            pre.next=node;
            pre=pre.next;
            l1=l1.next;
            l2=l2.next;
        }
        //对
        while(l1!=null){
            int number=l1.val+carry;
            carry=number/10;
            ListNode node=new ListNode(number%10);
            pre.next=node;
            pre=pre.next;
            l1=l1.next;
        }
        while(l2!=null){
            int number=l2.val+carry;
            carry=number/10;
            ListNode node=new ListNode(number%10);
            pre.next=node;
            pre=pre.next;
            l2=l2.next;
        }
        if(carry!=0){
            ListNode node=new ListNode(carry);
            pre.next=node;
        }
    return head.next;
    }
}
目录
相关文章
|
1月前
|
算法
给定两个数,求这两个数的最大公约数
给定两个数,求这两个数的最大公约数
|
机器学习/深度学习
欧拉函数:求小于等于n且与n互质的数的个数
求小于等于n且与n互质的数的个数 互质穷举法 互质:两个数互质代表两者最大公约数为1 最大公约数求法:辗转相除法,最小公倍数:较大值除以最大公约数乘以较小值 辗转相除法: 较大的数a取模较小的数b,得取模值c 若取模值等于0 则最大公约数为取模值,否则继续下一步 a与c再次取模,回到第二步 //求最大公约数gcd以及最大公倍数lcm // 36 24 36/24 // 24 12 24/12 // 0 结束最大公约数为12 // 求最小公倍数 // lcm(a, b) = (a * b)/g
94 0
打印0~100000之间的水仙花数, 水仙花数指一个n位数,其各位数的n次方之和正好等于该数本身
打印0~100000之间的水仙花数, 水仙花数指一个n位数,其各位数的n次方之和正好等于该数本身
87 0
输出最小的数位和等于x并且各个数位都不一样的值
输出最小的数位和等于x并且各个数位都不一样的值
37 0
076.计算高次方数的尾数
076.计算高次方数的尾数
100 0
统计正数和负数的个数然后计算这些数的平均值(循环、数组解法)
统计正数和负数的个数然后计算这些数的平均值(循环、数组解法)
147 0
非负数组中两个数相与的最大结果
非负数组中两个数相与的最大结果