【leetcode】力扣算法之两数相加【中等难度】

题目描述

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

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

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

用例

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
在这里插入图片描述

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

输入: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.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var addTwoNumbers = function(l1, l2) {
    let rootNode=l2;
    let flag=0;//进位
    while(l1||l2){
        l2.val=v(l1)+v(l2)+flag;
        if(l2.val>9){
            flag=1;
            l2.val=l2.val-10;
        }else{
            flag=0;
        }
        if(l2.next==null&&l1.next==null){
            if(flag==1){
                //还需要进位 不能直接出去
                l2.next=new ListNode(1,null);
            }
            break;
        }else if(l2.next==null&&l1.next!=null){
            l2.next=new ListNode(0,null);
        }else if(l2!=null&&l1.next==null){
            l1.next=new ListNode(0,null);
        }
        l1=l1.next;
        
        l2=l2.next;
    }
    console.log(rootNode)
    return rootNode;
};
const v=(l1)=>{
    return l1==null?0:l1.val;
}

执行情况:
在这里插入图片描述

Tip

此题若不是用对象来做的话,可以考虑直接用数组,应该会更简单些

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

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

相关文章

助力企业出海,Ogcloud提供一站式网络解决方案

随着全球市场的开放和跨境电商的蓬勃发展&#xff0c;越来越多企业开始在海外拓展业务。但在这过程中&#xff0c;各种各样的网络问题成为企业出海的阻碍。Ogcloud凭借其卓越的技术实力和丰富的经验&#xff0c;为全球业务的公司提供全面的网络解决方案&#xff0c;包括SD-WAN、…

C语言如何提高程序的可读性?

一、问题 可读性是评价程序质量的一个重要标准&#xff0c;直接影响到程序的修改和后期维护&#xff0c;那么如何提高程序的可读性呢? 二、解答 提高程序可读性可以从以下几方面来进行。 &#xff08;1&#xff09;C程序整体由函数构成的。 程序中&#xff0c;main()就是其中…

C#,数值计算,高斯消元法与列主元消元法的源代码及数据动态可视化

高斯消元法&#xff01; 一、高斯消元法 Gaussian Elimination 高斯消元法&#xff08;或译&#xff1a;高斯消去法&#xff09;&#xff0c;是线性代数中的一个常用算法&#xff0c;常用于求解线性方程组和矩阵的逆。 本程序的运行效果&#xff1a; 1、高斯消元法的动画演示…

Linux学习19 在Ubuntu命令行下使用新硬盘

Linux学习19 在Ubuntu命令行下使用新硬盘 一、准备环境二、检测硬盘三、对新硬盘格式化1. 创建分区2. 格式化 三、挂载操作1. 创建挂载点2. 挂载硬盘3. 验证挂载 四、实现永久挂载&#xff08;可选&#xff09;1. 文件结构与内容&#xff1a;2. /etc/fstab 的重要性与作用3. 修…

运算符详解

1、定义 定义&#xff1a;运算符是一种特殊的符号&#xff0c;用于表示数据的运算、赋值和比较等 运算符的分类 1&#xff09;按功能分类&#xff1a; 1&#xff09;算术运算符&#xff08;7个&#xff09;​​​​​​​ 、-、*、/、%、、--​​​​​​​ 2&#xff0…

自动化测试框架pytest系列之基础概念介绍(一)

如果你要打算学习自动化测试 &#xff0c;无论是web自动化、app自动化还是接口自动化 &#xff0c;在学习的道路上&#xff0c;你几乎会遇到pytest这个测试框架&#xff0c;因为自动化编写没有测试框架&#xff0c;根本玩不了 。 如果你已经是一位自动化测试人员 &#xff0c;…

工程监测领域振弦采集仪的数据处理与分析方法探讨

工程监测领域振弦采集仪的数据处理与分析方法探讨 在工程监测领域&#xff0c;振弦采集仪是常用的一种设备&#xff0c;用于测量和记录结构物的振动数据。数据处理和分析是使用振弦采集仪得到的数据的重要环节&#xff0c;可以帮助工程师了解结构物的振动特性&#xff0c;评估…

FRPS配置服务端(腾讯云)、客户端(PC电脑Windows、树莓派Debian)并设置虚拟域名

1.服务端&#xff08;腾讯云&#xff09;&#xff1a;frps.ini [common] bind_port 7000 vhost_http_port8080 vhost_https_port44344 dashboard_port 7500 privilege_token your_password subdomain_host example.com use_encryption true encryption_method tls dashb…

面试宝典进阶之关系型数据库面试题

D1、【初级】你都使用过哪些数据库&#xff1f; &#xff08;1&#xff09;MySQL&#xff1a;开源数据库&#xff0c;被Oracle公司收购 &#xff08;2&#xff09;Oracle&#xff1a;Oracle公司 &#xff08;3&#xff09;SQL Server&#xff1a;微软公司 &#xff08;4&#…

RabbitMQ发布确认

1.单个确认 单个确认发布是一种同步确认发布方式&#xff0c;也就是发布一个消息后只有它被确认发布&#xff0c;后续的消息才能继续发布。 缺点:发布速度特别慢,因为若是没有确认发布的消息会阻塞所有后续消息的发布 package com.hong.rabbitmq5;import com.hong.utils.Rabb…

微信Windows版如何从旧电脑迁移聊天记录到新电脑

我们都知道&#xff0c;换手机的话&#xff0c;如果是同品牌&#xff0c;可以用该品牌的换机助手将微信资料传输给新手机&#xff0c;或者用微信PC端的迁移与备份功能来实现 那么换电脑或者重装系统呢&#xff1f;我们可以通过转移文件夹的方式进行 1、登录PC微信&#xff0c;…

选择最适合您的10个在线PS类型工具

Adobe Photoshop 多年来&#xff0c;Photoshop一直是设计师的首选。PS的功能无疑是非常强大的。设计师可以使用它来制作从简单的网页到复杂的移动应用程序设计。学习PS的基本知识很容易&#xff0c;但学习PS的所有技能都需要大量的时间和精力。当然&#xff0c;您也可以选择体…

哈希表-散列表数据结构

1、什么是哈希表&#xff1f; 哈希表也叫散列表&#xff0c;哈希表是根据关键码值(key value)来直接访问的一种数据结构&#xff0c;也就是将关键码值(key value)通过一种映射关系映射到表中的一个位置来加快查找的速度&#xff0c;这种映射关系称之为哈希函数或者散列函数&…

环境变量的使用

1.用法 1.建立文件夹.env.production&#xff08;开发&#xff09;.env.development(生产) 代码: NODE_ENVdevelopment VUE_APP_BASE_APIwww.aaa.comNODE_ENVproduction VUE_APP_BASE_APIwww.xxx.com 注意: 环境变量的文件夹应该是和src目录同级的: 2.获取 process.env.V…

vue+springboot+mybatis-plus实现乡村公共文化服务系统

项目前端&#xff1a;https://gitee.com/anxin-personal-project/rural-public-cultural-services-front 项目后端&#xff1a;https://gitee.com/anxin-personal-project/rural-public-cultural-services-behind 1.系统简介 乡村公共服务文化提供给管理员、商家、村民。管理…

二次电池的自放电

一、自放电概念 电池在开路状态时&#xff0c;其存储的电量自发被消耗的现象称为电池的自放电&#xff0c;又称电池的荷电保持能力&#xff0c;即在一定环境条件下&#xff0c;电池储存电量的保持能力。自放电也是衡量电池性能的重要参数之一&#xff0c;不同类型的电池自放电因…

过节购物怎么划算?用C语言爬虫采集京东优惠券

年关将至&#xff0c;喜迎春节&#xff0c;各家各户都忙着置办年货&#xff0c;农村逛集市&#xff0c;而城市里面的&#xff0c;尤其是年轻人最喜欢的是网购了&#xff0c;网购产品种类多&#xff0c;齐全非常方便。今天我就利用我学的技能&#xff0c;帮助大家爬取京东优惠券…

学生如何正确使用台灯?精选最合适学生使用的台灯

如今我国青少年儿童的近视率非常高&#xff0c;已经超过了50%&#xff0c;并且这个近视率还在逐年上升&#xff0c;近视的年龄也越来越趋势于低龄化&#xff0c;不少还未上学或者正在上小学的孩子都早早戴上了近视眼镜。因此许多家长都纷纷给孩子选购一台专业的护眼台灯&#x…

Docker实战09|使用AUFS包装busybox

前几篇文章中&#xff0c;重点讲解了如何实现构建容器&#xff0c;需要回顾的小伙伴可以看以下文章&#xff1a; 《Docker实战06&#xff5c;深入剖析Docker Run命令》《Docker实战07&#xff5c;Docker增加容器资源限制》《Docker实战08&#xff5c;Docker管道及环境变量识别…

服务器里面打开浏览器访问不了会是什么原因

我们在日常使用服务器的过程中&#xff0c;时常会有遇到各类情况&#xff0c;近日就有遇到用户联系到德迅云安全&#xff0c;反馈自己在服务器里面打不开浏览器&#xff0c;服务器里面没有网络无法访问的情况。那我们今天就来讲下服务器里面打不开网站可能是由哪些原因导致。 …