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

LeetCode 分类刷题:445. 两数相加 II

题目

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

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

示例2:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[8,0,7]

示例3:

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

解析

灵神思路

作者:灵茶山艾府
链接:https://leetcode.cn/problems/add-two-numbers-ii/solutions/2328330/fan-zhuan-lian-biao-liang-shu-xiang-jia-okw6q/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

LeetCode 分类刷题:2. 两数相加

实际是从链表尾到链表头的进位加法,所以首先反转两个链表,建立一个新的链表作为结果链表,存储原两个链表逐位相加后的结果,返回新链表的表头。

再设置一个变量记录当前位的数值,方便取余和进位,并为节点的值进行赋值。

当 任意一个链表还有节点未计算 或者 进位值不为0 时,重复以下步骤:

  • 非空链表对应位置的值相加(两个链表或者单独一个链表对应位置的值),得到当前位的和。
  • 新建一个节点,节点的值为 当前位的和对10取余数,进位值为 当前位的和整除10的结果
  • 结果链表的尾节点的指针指向新建节点,尾指针移动到新建节点。

答案

var reverseList = function(head) {let pre = null;let cur = head;while (cur) {let nxt = cur.next;cur.next = pre;pre = cur;cur = nxt;}return pre;
};var addTwo = function(l1, l2) {let dummy = new ListNode(); // 哨兵节点let cur = dummy;let carry = 0; // 进位while (l1 || l2 || carry) {if (l1) carry += l1.val; // 节点值和进位加在一起if (l2) carry += l2.val; // 节点值和进位加在一起cur = cur.next = new ListNode(carry % 10); // 每个节点保存一个数位carry = Math.floor(carry / 10); // 新的进位if (l1) l1 = l1.next; // 下一个节点if (l2) l2 = l2.next; // 下一个节点}return dummy.next; // 哨兵节点的下一个节点就是头节点
};var addTwoNumbers = function(l1, l2) {l1 = reverseList(l1);l2 = reverseList(l2);let l3 = addTwo(l1, l2);return reverseList(l3);
}# 作者:灵茶山艾府
# 链接:https://leetcode.cn/problems/add-two-numbers-ii/solutions/2328330/fan-zhuan-lian-biao-liang-shu-xiang-jia-okw6q/
# 来源:力扣(LeetCode)
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

复杂度分析

时间复杂度:O(n),其中 n 为 L1​ 长度和 L2长度的最大值。

空间复杂度:O(1)

http://www.dtcms.com/a/553488.html

相关文章:

  • 使用Docker搭建Swagger接口文档工具
  • 团队氛围建设 网站网站开发合同 深圳思
  • 机器学习第二阶段
  • 深圳网站建设单位如何在淘宝网做自己的网站
  • Python中正则表达式(re 模块)详解使用(1)原理篇
  • 给运维插上 AI 的翅膀:我的 Dify AIOps 探索之旅
  • aspcms建站wordpress 前台登陆
  • VTK操作3D文件
  • 3DMAX低多边形城市建筑模型预设插件LowPolyCityBuilder使用方法
  • windows系统上aosp15上winscope离线html如何使用?
  • 公司备案网站负责人是谁中山金舜家庭用品有限公司怎样网站地图
  • 讨论矩阵等价、相似的几何含义
  • 基于 LLM 的社交机器人对舆论动态的影响机制
  • 贸易公司如何做网站莱芜网站建设怎么样
  • 多形态机器人协同发力优艾智合引领核电运维智能化升级
  • 【C++】基于HashTable的底层实现unordered_map和unordered _set 的封装
  • 剧本杀小程序系统开发:如何打造“爆款”剧本的数字引擎?
  • PsTools 学习笔记(7.5):PsExec 的备用凭据与安全基线
  • 【Python】——基础语法练习题
  • 用n8n实现一个长视频生成工作流
  • 汉阳网站建设品牌建设规划品牌意向
  • 宝安做棋牌网站建设哪家服务好wordpress 在线手册
  • 高频 Redis 面试题清单
  • 全0初始化/全1初始化相关
  • Dioxus v0.7.0 released
  • 500+ AI Agent实战项目汇总:从CrewAI到Langgraph的开源实践指南
  • 案例分析交叉熵和交叉验证区别和联系
  • 高端响应式网站建设太原建站模板源码
  • 美团率先将社保补贴推向全国,外卖骑手成蓝领福利“标杆”
  • 【尚庭公寓118-121】[学习第三天]