当前位置:首页 > 算法 > 正文内容

leetcode - 2两数相加

淙嶙5年前 (2020-08-21)算法1873

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
先上代码:

/**
  *已知的代码:
/**
 * 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 head = new ListNode(0);
        ListNode next = head;
        //进位
        int carry = 0;
        while(l1 != null || l2 != null || carry !=0){
            int v1 = l1 == null ? 0 : l1.val;
            int v2 = l2 == null ? 0 : l2.val;
             int v = v1 + v2 + carry;
             carry = v / 10;
             next.next = new ListNode(v%10);
             next = next.next;
             l1 = l1 != null ? l1.next : null;
             l2 = l2 != null ? l2.next : null;
        }
        return head.next;
    }
}

依次取两个链表的 个位 十位 百位 … ,分别相加(个位对个位 十位对十位…) ,保留进位,进位参与下一个高位运算(carry),将结果保存在新的链表返回。

相关文章

单点登录终极方案之 CAS 应用及原理

单点登录终极方案之 CAS 应用及原理

Cookie的单点登录的实现方式很简单,但是也问题颇多。例如:用户名密码不停传送,增加了被盗号的可能。另外,不能跨域! 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理:将...

小学5年级的数学题: 求最大公约数

小学5年级的数学题: 求最大公约数

题目:有两个木料,一根长2015毫米,另一根长755毫米,要把他们锯成同样大小的小段,不许有剩余,但每锯一次要损耗1毫米的木料,每小段木料最长可以是多少毫米? 分析 网友发出来的,乍一看...

Head First 设计模式总结

Head First 设计模式总结

设计模式读书总结链接: https://pan.baidu.com/s/1fjM5mhJH67wN73sUhOiZTA 密码: od09...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。