两数相加力扣

Posted 一朵花花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两数相加力扣相关的知识,希望对你有一定的参考价值。

题目: 在线OJ

思考分析:

首先,创建一个newHead,表示目标链表
我们可以看作两个链表长度一样,在短的链表末尾补0
创建变量 carry 记录进位值,遍历两个链表,逐位计算和 sum = num1 + num2 + carry
注意: 最后要判断 carry > 0 ? 若还有进位值,则要将其附加在链表结尾

代码实现:

public ListNode addTwoNumbers2(ListNode l1, ListNode l2) {
    ListNode newHead = new ListNode(0);
    ListNode tail = newHead;
    int carry = 0;
    int result = 0;

    while (l1 != null || l2 != null) {
        int num1 = l1 != null ? l1.val : 0;
        int num2 = l2 != null ? l2.val : 0;
        int sum = num1 + num2 + carry;
        carry = sum / 10;
        result = sum % 10;
        tail.next = new ListNode(result);
        tail = tail.next;
        if (l1 != null) {
            l1 = l1.next;
        }
        if (l2 != null) {
            l2 = l2.next;
        }
        if(carry > 0){
            tail.next = new ListNode(carry);
        }
    }
    return newHead.next;
}

以上是关于两数相加力扣的主要内容,如果未能解决你的问题,请参考以下文章

两数相加力扣:中等难度

两数相加力扣

SqlServer数据库要求按照两数相减结果的绝对值正序排列怎么写sql语句?

力扣每日一题 371. 两整数之和 (如何不用+和-让两数相加)

力扣题解 1th 两数之和

力扣算法题-Python1两数的和