Leetcode-2 两数相加

在这里插入图片描述
在这里插入图片描述
不知道为什么有些测试用例通不过,思路很明晰,改不明白了,求大佬指点!!!!

/**
 * 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 l3 = new ListNode(0);
        int a=0,b=0;
        int count1=0,count2=0;
        while(l1!=null){
            a+=l1.val*Math.pow(10,count1);
            count1++;
            l1=l1.next;
        }
        while(l2!=null){
            b+=l2.val*Math.pow(10,count2);
            count2++;
            l2=l2.next;
        }
        int c=a+b;
        ListNode p=l3;
        if(c==0){
             p.next=new ListNode(0);
        }
        while(c>0){
            int d=c%10;
            c=c/10;
            p.next=new ListNode(d);
            p=p.next;
        } 
        return l3.next;
    }
}

官方题解:

/**
 * 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 prev = new ListNode(0);
        //定义一个进位数的指针,用来存储当两数之和大于10的时候,
        int carry = 0;
        //定义一个可移动的指针,用来指向存储两个数之和的位置
        ListNode cur = prev;
        //当l1 不等于null或l2 不等于空时,就进入循环
        while(l1!=null || l2!=null){
            //如果l1 不等于null时,就取他的值,等于null时,就赋值0,保持两个链表具有相同的位数
            int x= l1 !=null ? l1.val : 0;
             //如果l1 不等于null时,就取他的值,等于null时,就赋值0,保持两个链表具有相同的位数
            int y = l2 !=null ? l2.val : 0;
            //将两个链表的值,进行相加,并加上进位数
            int sum = x + y + carry;
            //计算进位数
            carry = sum / 10;
            //计算两个数的和,此时排除超过10的请况(大于10,取余数)
            sum = sum % 10;
            //将求和数赋值给新链表的节点,
            //注意这个时候不能直接将sum赋值给cur.next = sum。这时候会报,类型不匹配。
            //所以这个时候要创一个新的节点,将值赋予节点
            cur.next = new ListNode(sum);
            //将新链表的节点后移
            cur = cur.next;
            //当链表l1不等于null的时候,将l1 的节点后移
            if(l1 !=null){
                l1 = l1.next;
            }
            //当链表l2 不等于null的时候,将l2的节点后移
            if(l2 !=null){
                l2 = l2.next;
            } 
        }
        //如果最后两个数,相加的时候有进位数的时候,就将进位数,赋予链表的新节点。
        //两数相加最多小于20,所以的的值最大只能时1
        if(carry == 1){
            cur.next = new ListNode(carry);
        }
        //返回链表的头节点
        return prev.next;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/129933.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

写一下关于部署项目到服务器的心得(以及遇到的难处)

首先要买个服务器(本人的是以下这个) 这里我买的是宝塔面板的,没有宝塔面板的也可以自行安装 点击登录会去到以下页面 在这个界面依次执行下面命令会看到账号和密码和宝塔面板内外网地址 sudo -s bt 14点击地址就可以跳转宝塔对应的内外网页面 然后使用上述命令提供的账号密…

《006.Springboot+vue之旅游信息推荐系统》【有文档】

《006.Springbootvue之旅游信息推荐系统》【有文档】 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatis; 前台:vueElementUI; [2]功能模块展示: …

计算机是如何进行工作的+进程和线程

一)计算机是如何工作的? 指令是如何执行的?CPU基本工作过程? 假设上面有一些指令表,假设CPU上面有两个寄存器A的编号是00,B的编号是01 1)第一个指令0010 1010,这个指令的意思就是说把1010地址上面的数据给他读取到A寄存器里面 2…

数据结构-图的应用

最小生成树(最小代价树) 对于一个带权连通无向图G(V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的…

商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

工业级环网交换机:高效过滤和转发数据包的网络设备

环形网络是一种网络拓扑结构,其特点是将每个设备连成一个连续的环形。它可以确保一台设备发出的信号可以被环上所有其他设备接收到。环网冗余是指工业级环网交换机是否能够应对网络线缆连接中断的情况。当出现连接中断时,工业级环网交换机会接收到此消息…

常见排序算法之快速排序

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。 基本思想为∶任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,…

【Pytest】跳过执行之@pytest.mark.skip()详解

一、skip介绍及运用 在我们自动化测试过程中,经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释掉或删除掉,后面还要进行恢复操作。 1、skip跳过成…

nodejs express multer 保存文件名为中文时乱码,问题解决 originalname

nodejs express multer 保存文件名为中文时乱码,问题解决 originalname 一、问题描述 用 express 写了个后台,在接收文件并保存的时候 multer 接收到的文件名为乱码。 二、解决 找了下解决方法,在 github 的 multer issue 中找到了答案 参…

【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符

引言 在上一篇中我们介绍了MySQL函数;在开发中,对MySQL运算符的运用是十分重要的。这一篇我们使用命令行方式来帮助读者掌握MySQL中运算符的操作。 上一篇链接:【MySQL进阶之路丨第十六篇】一文带你精通MySQL函数 MySQL运算符 MySQL中的运…

node插件MongoDB(四)—— 库mongoose 的个性话读取(字段筛选、数据排序、数据截取)(四)

文章目录 一、字段筛选二、数据排序三、数据截取1. skip 跳过2. limit 限定![在这里插入图片描述](https://img-blog.csdnimg.cn/c7067b1984ee4c6686f8bbe07cae9176.png) 一、字段筛选 字段筛选:只读取指定的数据,比如集合(表)中有…

JMeter 相关的面试题

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:加入1000人软件测试技术学习交流群📢资源分享:进了字节跳动之后,才…

【已验证】php配置连接sql server中文乱码(解决方法)更改utf-8格式

解决数据库中的中文数据在页面显示乱码的问题 在连接的$connectionInfo中设置"CharacterSet" > "UTF-8",指定编码方式即可 $connectionInfo array("UID">$uid, "PWD">$pwd, "Database">$database…

提升采购订单管理效率的五个最佳实践

企业每年都要订购成千上万的商品和服务。公司运营和发展所需的一切都来自庞大的供应商网络,而沟通这些需求的主要方式是通过采购订单。 由于所有订单都会流经系统,而且每个月都会发生数千元不等的供应支出,因此掌握采购订单流程成为重中之重…

[autojs]逍遥模拟器和vscode对接

第一步:启动autojs服务 第二步:去cmd查看ip地址,输入ipconfig 第三步:打开逍遥模拟器中的sutojs-左上角- 连接电脑,然后输入WLAN或者其他ip也行,根据自己电脑实际情况确认 此时vscode显示连接成功。我们写…

selenium 自动化测试 1-如何搭建自动化测试环境,搭建环境过程应该注意的问题

最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,但是对于没有学过的人来说,通过资料再到自己写的…

Pinia 是什么?Redux、Vuex、Pinia 的区别?

结论先行: Pinia 是 Vue 官方团队开发的一个全新状态管理库。核心都是解决组件间的通信和数据的共享问题。 它和 Vuex 的区别呢,一个是虽然它和 Vuex 类似,但 Pinia 使用起来更加简单和直观。因为 Pinia 基于 Vue3 的组合式 API 风格&…

【Unity】零基础实现塔防游戏中敌人沿固定路径移动的功能

目录 场景搭建 烘焙(Bake) 敌人动作控制 脚本实现 我们知道,在一些塔防小游戏中,敌人往往会沿着给定的一条路径移动,我们在条路的路边会布置防御设施,攻击消灭敌人,阻止敌人到达终点。 场景搭建 我们首先新建一个…

【数据结构与算法】DFA算法-关键词匹配-java案例实现

该算法往往是用于匹配一些敏感词、绝对词等,从一篇文章中快速找到其中包含的关键词。 实现思路: 先读取所有关键词并存入set集合中。再将set中的关键词存入HashMap中,是以每个关键词字顺序存储,key为一个字、value为一个HashMap。…

Laplacian Redecomposition for Multimodal Medical Image Fusion

LRD方法 GDIE means ‘gradient-domain image enhancement’,DGR means ‘decision graph redecomposition’ MLD means ‘maximum local difference’ LEM means ‘local energy maximum’,OD means ‘overlapping domain’,LP means ‘L…