[路飞]_leetcode-2-两数相加

简介: leetcode-2-两数相加

网络异常,图片无法展示
|


「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战


[题目地址][B站地址]


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


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


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


解题思路如下:


  1. 创建虚拟头节点用来返回结果链表
  2. 创建 num 变量记录之前节点的和值的进位数值
  3. 当传入链表至少一个不为空的时候,遍历链表,得到当前循环的和值 sum = (l1?li.val:0) + (l2?l2.val:0) + num
  4. 根据 sum 创建下一个节点 `new ListNode(sum%10)
  5. 记录进位数值 num = Math.floor(sum/10)
  6. 将结果链表、l1l2 走向后走一位(如果某个链表为空,则指向 null
  7. 当两个链表都为空后,判断此时进位数值是否不为零,如果不为零,则根据进位数值节点连接到结果链表末尾
  8. 返回结果链表的头节点


说明: 根据题意可知链表节点的值为 0~9,则 sum 的值为 0~18,所以 num01


代码如下:


var addTwoNumbers = function(l1, l2) {
  const vhead = new ListNode(0);
  let num = 0,
  cur = vhead;
  while(l1||l2){
    const sum = (l1?l1.val:0)+(l2?l2.val:0)+num;
    cur.next = new ListNode(sum%10)
    num = Math.floor(sum/10);
    cur = cur.next;
    l1 = l1?l1.next:null;
    l2 = l2?l2.next:null;
  }
  if(num) cur.next = new ListNode(num);
  return vhead.next;
};
复制代码


至此我们就完成了 leetcode-2-两数相加


如有任何问题或建议,欢迎留言讨论!

相关文章
|
人工智能 vr&ar
Sora新视频发TikTok:OpenAI 4天涨粉10万
【2月更文挑战第3天】Sora新视频发TikTok:OpenAI 4天涨粉10万
111 1
Sora新视频发TikTok:OpenAI 4天涨粉10万
|
12月前
|
数据采集 网络安全 文件存储
快速部署 OpenFOAM 社区版
OpenFOAM(Open Source Field Operation and Manipulation)是对连续介质力学问题进行数值计算的软件。可进行数据预处理、后处理和自定义求解器,常用于计算流体力学领域。本文介绍如何通过计算巢快速部署OpenFOAM社区版服务。
快速部署 OpenFOAM 社区版
|
存储 缓存 分布式计算
【大数据】计算引擎MapReduce
【大数据】计算引擎MapReduce
469 0
|
存储 算法 编译器
【C/C++ 原始指针】深入理解 C 语言指针:从基础到高级应用
【C/C++ 原始指针】深入理解 C 语言指针:从基础到高级应用
247 0
|
Web App开发 前端开发
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
364 0
|
算法 C语言 芯片
DSP芯片分类与应用
DSP芯片分类与应用
423 0
|
开发工具 微服务 Windows
【Azure 微服务】PowerShell中,用Connect-ServiceFabricCluster命令无法连接到sf-test.chinaeast2.cloudapp.chinacloudapi.cn:19000 问题分析
【Azure 微服务】PowerShell中,用Connect-ServiceFabricCluster命令无法连接到sf-test.chinaeast2.cloudapp.chinacloudapi.cn:19000 问题分析
114 0
SpringBoot:Invalid bound statement (not found)的原因和解决方案
SpringBoot:Invalid bound statement (not found)的原因和解决方案
Java类和对象的关系原理图
Java类和对象的关系原理图
|
网络协议
Socket通信详细介绍2
Socket通信详细介绍
163 0