首页 > 其他分享 >力扣---2. 两数相加

力扣---2. 两数相加

时间:2023-02-11 21:24:39浏览次数:53  
标签:--- ListNode val 相加 next 力扣 l2 l1 null

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

请你将两个数相加,并以相同形式返回一个表示和的链表。

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

 

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]

示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

 

提示:

    每个链表中的节点数在范围 [1, 100] 内
    0 <= Node.val <= 9
    题目数据保证列表表示的数字不含前导零

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/add-two-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

两个月前已经写过了,试了下,结果第一遍失败,汰。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        // 定义一个新的链表来存储答案。
        ListNode res = new ListNode();
        // 将答案的地址赋给另一个变量,由于赋的是地址,所以另一个变量改变,res也会改变。
        // 这样可以保证返回的res是从头开始的。
        ListNode node = res;
        // 定义一个变量来存储是否进位。
        int tem = 0;
        while (l1 != null || l2 != null || tem != 0) {
            int val1 = l1 == null ? 0 : l1.val;
            int val2 = l2 == null ? 0 : l2.val; 
            node.val = (val1 + val2 + tem) % 10;
            tem = (val1 + val2 + tem) / 10;
            l1 = l1 == null ? null : l1.next;
            l2 = l2 == null ? null : l2.next;
            // 试了很多方法,如果不加这一个判定来强制结束循环的话,结果总是多一个0,完了再想想办法。
            // 否则代码这样看起来是真的蠢。
            if (!(l1 != null || l2 != null || tem != 0)) {
                break;
            }
            node.next = new ListNode();
            node = node.next;
        }
        return res;
    }
}

 

标签:---,ListNode,val,相加,next,力扣,l2,l1,null
From: https://www.cnblogs.com/allWu/p/17112583.html

相关文章

  • 学习打卡03-流程控制
    前言:程序中最经典的三种执行顺序顺序结构:自上而下的执行代码分支结构:根据条件,选择对应的代码执行ifswitch循环结构:控制某段代码重复执行......
  • 86、商城业务---认证服务---社交登陆步骤
    1、点击我们网站的社交登录按钮2、跳转到微博授权登录页3、当我们输入完账号密码后,会跳转到我们回调地址我们的回调地址是一个controller中的接口,目的是为了避......
  • 案例-列表查询-代码实现
    案例-列表查询-代码实现这个案例只需要index.jsp和list.jsp页面(在博客后面有)配置文件driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql:///db2username=roo......
  • day72-单文件组件
    单文件组件将不同的组件html文件,js文件分为不同的独立文件并进行import引入School.vue <template><!--组件的结构--><divclass="demo"><h2>名称:{{......
  • LeetCode 22 -- Generate Parentheses
    ProblemGiven\(n\)pairsofparentheses,writeafunctiontogenerateallcombinationsofwell-formedparentheses.Example1Input:n=3Output:["((()))","(......
  • GitLab CICD Day 17 - Image递增版本号 - 2
    新增build版本号variables:user:ericpwd:Admin@1234harbor:http://172.16.128.215:8080image_hellocat:172.16.128.215:8080/hive/hellocatstages:-testing......
  • 算法刷题-四数之和、缺失的第一个正数、N 皇后
    四数之和给定一个包含n个整数的数组nums和一个目标值target,判断nums中是否存在四个元素a,b,c和d,使得a+b+c+d的值与target相等?找出所有满足条件且不重复......
  • GitLab CICD Day 19 - SSH免密登录远程服务器 *
    服务器免密:生成ssh-key(服务器A&B)[root@qaonpremise]#ssh-keygenGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rs......
  • 黄金-1月15号后的后续走势分析
    1月15号的分析跟进:https://www.cnblogs.com/lyonlee/p/17054423.html 目前3浪5走完,开启4浪的回调。回调可能结束于1842-45一线。 当然还有一种备选方案就是大3浪已......
  • 1-2 月杂题选做
    Preface想记录一些有意思的题,结果发现有点难度的题全是ds。/gg一些过于板的题或者板子题就不写了。TextCF718CSashaandArray斐波那契\(\to\)矩阵乘法,所以线段......