美文网首页LeeCode
力扣百题-2. 两数相加

力扣百题-2. 两数相加

作者: 康大侠 | 来源:发表于2021-02-22 17:17 被阅读0次
Leecode

使用虚拟头结点进行处理,要注意计算到最后考虑进位是否还有数值

这里有一个效率比较,直接使用三目运算符效率比进行除法效率更高

// carry = total / 10; 
 carry = total > 9 ? 1 : 0;
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if (l1 == null) return l2;
        if (l2 == null) return l1;
        ListNode dummyHead = new ListNode(0);
        ListNode last = dummyHead;
        // 进位
        int carry = 0;
        while (l1 != null || l2 != null) {
            int v1 = 0;
            if (l1 != null) {
                v1 = l1.val;
                l1 = l1.next;
            }

            int v2 = 0;
            if (l2 != null) {
                v2 = l2.val;
                l2 = l2.next;
            }

            int total = v1 + v2 + carry;
            // carry = total / 10; 直接使用三目运算符效率更高
            carry = total > 9 ? 1 : 0;

            last.next = new ListNode(total % 10);

            last = last.next;

        }

        if (carry > 0) last.next = new ListNode(carry);

        return dummyHead.next;
    }

相关文章

  • 力扣百题-2. 两数相加

    使用虚拟头结点进行处理,要注意计算到最后考虑进位是否还有数值 这里有一个效率比较,直接使用三目运算符效率比进行除法...

  • 力扣刷题——2. 两数相加

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

  • 二进制求和

    力扣67题 思路:类似力扣第二题,相加之后模(%)进制数获得当前位数的值,然后用相加之后的数除以进制数,获得进位的...

  • 力扣2. 两数相加

    题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 ...

  • 算法和数据结构之小白(三)

    力扣第三题(两数相加) 1. 题目 2. 思路 while 循环 3. 解法 while循环 点击提交记录里的通过...

  • [力扣] 2. 两数相加 中等

    链接:https://leetcode-cn.com/problems/add-two-numbers 题目 [中...

  • Swift 力扣第二题:两数相加

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

  • 两数相加 II(golang)

    原题:两数相加 II 使用栈,其它与两数相加(golang)类似

  • leetcode 刷题 题2.两数相加

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 ...

  • ATRS第1周

    ATRS Algorithm算法题: 两数之和 - 力扣 (LeetCode) ``` function twoS...

网友评论

    本文标题:力扣百题-2. 两数相加

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