美文网首页LeeCode刷题笔记
003、两数相加(中等难度)

003、两数相加(中等难度)

作者: vannesspeng | 来源:发表于2020-06-10 22:16 被阅读0次

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

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

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

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

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

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        //首先新建一个哑节点,作为结果链表的头指针的前一个元素
        ListNode dump = new ListNode(0);
        ListNode curr = dump;
        //进位
        int carry = 0;
        while(l1 != null || l2 != null){
            int x = (l1 == null) ? 0 : l1.val;
            int y = (l2 == null) ? 0 : l2.val;
            //计算新的节点
            int sum = x + y + carry;
            //新建新的节点
            curr.next = new ListNode(sum % 10);
            //移动当前节点指针到下一位
            curr = curr.next;
            //计算出进位
            carry  = sum / 10;

            //如果两个子链表的当前节点不为空,就进行移位
            if(l1 != null){
                l1 = l1.next;
            }
            if(l2 != null){
                l2 = l2.next;
            }
        }
        //处理最后的进位
        if(carry != 0){
            curr.next = new ListNode(1);
        }
        return dump.next;
    }
}

相关文章

  • 003、两数相加(中等难度)

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

  • 2. 两数相加 难度:中等

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

  • 02.两数相加(难度:中等)

    两数相加(难度:中等) 题目描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序...

  • Python LeetCode-2.两数相加(难度-中等)(py

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

  • LeetCode-2 两数相加

    题目:2. 两数相加 难度:中等 分类:链表 解决方案:链表的遍历 题目描述 给出两个非空的链表用来表示两个非负的...

  • 2.两数相加(中等)

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

  • leetcode算法—两数相加(中等)

    leetcode的两数相加[https://leetcode-cn.com/problems/add-two-nu...

  • 2. 两数相加(中等,链表)

    中文版本 题目 难度:中等 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式...

  • 1.链表(一)

    题目汇总https://leetcode-cn.com/tag/linked-list/2. 两数相加中等19. ...

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

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

网友评论

    本文标题:003、两数相加(中等难度)

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