当前位置: 首页 > news >正文

leetcodeTOP100(26)两数相加

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

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

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

输入: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

双指针法就可以了

package TOP21_30;import Util.ListNode;// 两数相加
public class Top26 {public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {if (l1 == null || l2 == null) {return null;}ListNode res = new ListNode(0);ListNode cur = res;int inc = 0;while (l1 != null && l2 != null) {int count = l1.val + l2.val + inc;int resNum = count;if (count >= 10) {resNum = count - 10;inc = 1;}if(count<10){inc =0;}ListNode node = new ListNode(resNum);cur.next = node;cur = cur.next;l1 = l1.next;l2 = l2.next;}// 存在进位while (inc == 1) {if (l1 == null && l2 == null) {ListNode node = new ListNode(1);node.next = null;cur.next = node;return res.next;}if (l1 == null && l2 != null) {int count = l2.val + inc;int resNum = count;if (count >= 10) {resNum = count - 10;inc = 1;} else {inc = 0;}ListNode node = new ListNode(resNum);cur.next = node;cur = cur.next;l2 = l2.next;}if (l1 != null && l2 == null) {int count = l1.val + inc;int resNum = count;if (count >= 10) {resNum = count - 10;inc = 1;} else {inc = 0;}ListNode node = new ListNode(resNum);cur.next = node;cur = cur.next;l1 = l1.next;}}// 不存在进位if (inc == 0) {cur.next = l1 == null ? l2 : l1;}return res.next;}public static void main(String[] args) {int[] num1 = {2, 4,3};int[] num2 = {5,6,4};ListNode list1 = ListNode.setNodes(0, num1);ListNode list2 = ListNode.setNodes(0, num2);ListNode list3 = addTwoNumbers(list1,list2);ListNode.printListData(list3);}
}

harryptter / LeetcodeTop100 · GitCode

http://www.lryc.cn/news/176286.html

相关文章:

  • performance_schema
  • 全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程
  • Android 13.0 framework层系统手势增加上滑手势home事件功能(相当于Home键)
  • webp格式及其转成
  • echo cat find grep命令
  • Linux学习第20天:Linux按键输入驱动开发: 大道至简 量入为出
  • WordPress主题开发( 七)之—— 模版文件继承规则
  • Simulink 封装
  • 【AI视野·今日Robot 机器人论文速览 第三十六期】Tue, 19 Sep 2023
  • Java随笔
  • ARINC825规范简介
  • SQLAlchemy列参数的使用和query函数的使用
  • 产权未转移登记的离婚析产协议不能对抗债权人
  • python+nodejs+php+springboot+vue 导师双选系统
  • paddle2.3-基于联邦学习实现FedAVg算法
  • 伺服丝杠系统常用运算功能块
  • 【Vue】模板语法,事件处理器及综合案例、自定义组件、组件通信
  • 从0开始写中国象棋-创建棋盘与棋子
  • 软件的开发步骤,需求分析,开发环境搭建,接口文档 ---苍穹外卖1
  • Qt扫盲-QSqlQueryModel理论总结
  • 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测(SE注意力机制)
  • 【单调栈】496. 下一个更大元素 I
  • 搭建Vue的开发环境,Edge浏览器安装VUE拓展工具
  • 14:00面试,14:06就出来了,这问的谁顶得住啊
  • python 探索分形世界|曼德布洛特|np.frompyfunc()
  • Android MVVM示例项目
  • 迅为龙芯2K1000开发板通过汇编控制GPIO
  • 合合信息、上海大学、华南理工大学发布业内首个古彝文编码“大字典” ,为古文字打造“身份证”
  • Django — 类视图和中间件
  • VMware安装CentOS Stream 8以及JDK和Docker