美文网首页
2018-11-26 两数相加

2018-11-26 两数相加

作者: 天际神游 | 来源:发表于2018-11-26 11:40 被阅读0次

题目:

2. 两数相加

解法:

因为列表是逆序的, 所以恰好就从个位开始. 所以我们只需要对应的数位相加.
然后再判断是否进位, 如果进位则进位标志位设置为true, 否则为false. 用于下一阶段的计算之中.
最后别忘了可能会有进位, 不能直接退出, 需要再判断一下是否再加上一个数位1;

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    ListNode res = new ListNode(0);
    ListNode resHead = res;
    boolean isCarry = false;
    while ((l1 != null) || (l2 != null)) {
        int sum = (l1 != null ? l1.val : 0) + (l2 != null ? l2.val : 0);
        sum = isCarry ? (sum + 1) : sum;

        isCarry = sum > 9;
        res.next = new ListNode(sum % 10);

        res = res.next;
        l1 = l1 != null ? l1.next : null;
        l2 = l2 != null ? l2.next : null;
    }
    res.next = isCarry ? new ListNode(1) : null;
    return resHead.next;
}

相关文章

  • 2018-11-26 两数相加

    题目: 2. 两数相加 解法: 因为列表是逆序的, 所以恰好就从个位开始. 所以我们只需要对应的数位相加.然后再判...

  • 两数相加

    题目 You are given two non-empty linked lists representing ...

  • 两数相加

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • 两数相加

    两数相加 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一...

  • 两数相加

    两数相加: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回...

  • 两数相加

    题目 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新...

  • 两数相加

    题目描述: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回...

  • 两数相加

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • 两数相加

    问题链接:https://leetcode-cn.com/explore/interview/card/top-i...

  • 两数相加

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

网友评论

      本文标题:2018-11-26 两数相加

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