每日一题:LeetCode2.两数相加

 

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

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

你可以假设除了数字 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
  • 题目数据保证列表表示的数字不含前导零

草图:(对照上面图片例子)

/*** 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; }* }*//*** 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。* 请你将两个数相加,并以相同形式返回一个表示和的链表。* 你可以假设除了数字0之外,这两个数都不会以0开头。*//*** 典型的竖式加法模拟题:首先个位相加,其次十位,百位,千位...每次加的时候逢十进一*/
public class AddTest {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//首先,对链表题目有一个虚拟的头结点ListNode dummyHead = new ListNode(-1);//令当前的指针等于虚拟头结点ListNode cur = dummyHead;//设置一个进位tempint temp = 0;//进位一开始等于0//依次重复这个过程,条件:第一个链表里边有数,或者第二个链表里面有数,或者当前进位不等于0!while (l1 != null || l2 != null || temp != 0) {//tmep!=0 是如果最后一次刚好进位上去就把进位位写到逆序的最后一位//首先拿到第一个链表种要加的数int val1 = l1 == null ? 0 : l1.val;//如果链表一为空直接返回0,否则就返回链表一中的值int val2 = l2 == null ? 0 : l2.val;//同理(三元运算符)//两个数相加每一次都要考虑之前的进位(如果存在也就是进位不为0)temp += val1;//将链表一的值加到进位位里temp += val2;//再将链表二的值加到进位位,实现了对应位数上相加再加上进位//声明当前要存放的数字的结点:存放的值应该是temp对10取模的结果ListNode node = new ListNode(temp % 10);//然后当前指针就指向下一个结点 c的位置-1 -》 0 ,值变成了8cur.next = node;//每一次将当前结点指向下一个结点的时候,当前结点也要向后(逆序)移动一个位置cur=cur.next;//temp就应该向前进位了 temp除以10  temp/10 -> 表示进位是0(小于10)或者1(大于10)temp = temp / 10;//temp / =10//此时考虑链表1不为空链表1就往前进位  l2同理if(l1!=null){l1=l1.next;}if(l2!=null){l2=l2.next;}}//最后将虚拟的头节点的next返回即可return dummyHead.next;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C#控制台贪吃蛇

Console.Write("");// 第一次生成食物位置 // 随机生成一个食物的位置 // 食物生成完成后判断食物生成的位置与现在的蛇的身体或者障碍物有冲突 // 食物的位置与蛇的身体或者障碍物冲突了&#xff0c;那么一直重新生成食物&#xff0c;直到生成不冲突…

说说JVM的垃圾回收机制

简介 垃圾回收机制英文为Garbage Collection, 所以我们常常称之为GC。那么为什么我们需要垃圾回收机制呢&#xff1f;如果大家有了解过Java虚拟机运行时区域的组成(JVM运行时存在&#xff0c;本地方法栈&#xff0c;虚拟机方法栈&#xff0c;程序计数器&#xff0c;堆&#xf…

麒麟系统Redis7.2哨兵集群部署

redis哨兵集群部署 1、原理 Redis 哨兵模式是指在 Redis 集群中,有一组专门的进程(即哨兵进程)负责监控主节点和从节点的状态,并在发现故障时自动进行故障转移,以保证 Redis 集群的高可用性。 Redis 提供了哨兵的命令,哨兵命令是一个独立的进程,哨兵进程会周期性地向主…

60 个深度学习教程:包含论文、实现和注释 | 开源日报 No.202

labmlai/annotated_deep_learning_paper_implementations Stars: 44.0k License: MIT annotated_deep_learning_paper_implementations 是一个包含深度学习论文的 60 个实现/教程&#xff0c;附带并排注释&#xff1b;包括 transformers&#xff08;原始、xl、switch、feedbac…

Sentaurus TCAD中SDE的mtt命令

Reflection 配套代码 ; Building mesh (sde:build-mesh "snmesh" "" "nnode_half_msh") ; Reflect the device (system:command "tdx -mtt -x -M 0 -S 0 -ren drainsource nnode_half_msh nnode_msh");----------------------------…

【洛谷 P8661】[蓝桥杯 2018 省 B] 日志统计 题解(滑动窗口+优先队列+双端队列+集合)

[蓝桥杯 2018 省 B] 日志统计 题目描述 小明维护着一个程序员论坛。现在他收集了一份“点赞”日志&#xff0c;日志共有 N N N 行。其中每一行的格式是 ts id&#xff0c;表示在 t s ts ts 时刻编号 i d id id 的帖子收到一个“赞”。 现在小明想统计有哪些帖子曾经是“热…

电脑充电器能充手机吗?如何给手机充电?

电脑充电器可以给手机充电吗&#xff1f; 电脑充电器可以给手机充电&#xff0c;但前提是电脑充电器的功率输出与手机的功率匹配且接口匹配。 假设电脑充电器的输出功率为5V/2A&#xff0c;手机也支持5V/2A的输入功率。 只要接口匹配&#xff0c;就可以使用电脑充电器给手机充…

20240314-2-字符串string

1.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀…

玩转键盘鼠标,自动化你的电脑操作 —— 定时执行专家

简介 “定时执行专家”是一款功能强大的定时任务执行软件&#xff0c;除了支持常见的定时关机、重启、执行程序等功能外&#xff0c;还拥有模拟键盘按键和模拟鼠标操作功能&#xff0c;可以让你轻松实现各种自动化操作。 模拟键盘按键功能可以模拟用户的键盘输入&#xff0c;让…

如何用Selenium通过Xpath,精准定位到“多个相同属性值以及多个相同元素”中的目标属性值

前言 本文是该专栏的第21篇,后面会持续分享python爬虫干货知识,记得关注。 相信很多同学,都有使用selenium来写爬虫项目或者自动化页面操作项目。同样,也相信很多同学在使用selenium来定位目标元素的时候,或多或少遇见到这样的情况,就是用Xpath定位目标元素的时候,页面…

第五章、数据库6分

数据库的三级模式和两级映像图 数据模型的三要素&#xff1a;数据结构、数据操作、数据的完整性约束条件 数据库的三级模式和两级映像图 关系代数 函数依赖 平凡函数依赖&#xff1a; 规范化理论 1NF&#xff1a;每个属性都是不可再分的原子 2NF&#xff1a;不存在部分函…

MediaCodec源码分析 状态简单介绍

前言 本文分析MediaCodec.h层的状态机,下篇介绍ACodec状态机,基于7.0代码。 MediaCodec状态介绍 During its life a codec conceptually exists in one of three states: Stopped, Executing or Released. The Stopped collective state is actually the conglomeration of…

我是继续学习编程,还是学数控?

今日话题&#xff0c;继续学习编程&#xff0c;还是学数控&#xff1f;综合来说肯定是软件的待遇和工作环境都要好些。 当然这行有一定的技术门槛&#xff0c;所谓会者不难&#xff0c;难者不会。要入门需要一定的天赋或者说时间&#xff0c;当然 兴趣是最好的老师&#xff0c;…

快慢指针:妙解查找链表的中间结点问题

给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中间结点&#xff0c;值为 3 。示…

基于Linux内核的socket编程(TCP)的C语言示例

原文地址&#xff1a;https://www.geeksforgeeks.org/socket-programming-cc/ 服务端&#xff1a; #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <unistd.h>#…

论文阅读——GeoChat(cvpr2024)

GeoChat : Grounded Large Vision-Language Model for Remote Sensing 一、引言 GeoChat&#xff0c;将多模态指令调整扩展到遥感领域以训练多任务会话助理。 遥感领域缺乏多模式指令调整对话数据集。受到最近指令调优工作的启发&#xff0c;GeoChat 使用 Vicuna-v1.5和自动化…

填坑记4:恢复浏览器Console控制台中被隐藏的报错信息,使其正常显示

收录于《填坑记》 一、问题 系统开发时&#xff0c;打开控制台&#xff0c;然后看到红色的报错信息&#xff0c;顿时改Bug的ptsd涌上脑海&#xff0c;想把它们暂时隐藏掉&#xff0c;于是点了右键隐藏。 隐藏之后&#xff0c;界面清净格外舒畅&#xff0c;报错信息不再显示但要…

基于SpringBoot和MySQL实现的在线小说平台

1.项目简介 1.1 简介 制作小说阅读网可以给作者和读者提供一个相互交流的平台&#xff0c;作者将自己满 意的作品发布到这个平台让更多的人看到它们&#xff0c;而读者可以在这个平台寻找自己 感兴趣的作品并发布自己对作品的评论&#xff0c;作者能及时根据读者的评论来修改…

如何看待工作中的内耗和妥协

目录 1.阿波罗神庙箴言 2.达克效应 3.Kown Yourself 1.阿波罗神庙箴言 在古希腊德尔菲阿波罗神庙的入口前镌刻着三条箴言&#xff0c;其中广为流传的是第一条&#xff1a;γν θι σεαυτ ν--Konw yourself。 这与《道德经》第三十三章《自知者明》所表达的含义不谋而…

【python】集合

前言 简洁整理&#xff0c;无废话 集合概念 含义&#xff1a;跟数学中的基本一样 形式&#xff1a;{1,a,(1,2)} 性质&#xff1a;不重复性&#xff0c;集合中每个元素不会有重复&#xff1b;集合中必须是不可变元素&#xff0c;不能有列表可以有元组 创建&#xff1a;{}或…