给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 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]
该怎么去做啊
js 这个问题是怎么去解决的啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 0x0007 2023-05-30 10:45关注
上代码:
function addTwoNumbers(l1, l2) { let result = null; let carry = 0; let cur, p1 = l1, p2 = l2; while(p1 || p2) { let sum = (p1 ? p1.val : 0) + (p2 ? p2.val : 0) + carry; carry = Math.floor(sum / 10); if(!result) { result = new ListNode(sum % 10); cur = result; } else { cur.next = new ListNode(sum % 10); cur = cur.next; } p1 = p1 ? p1.next : null; p2 = p2 ? p2.next : null; } if(carry !== 0) { cur.next = new ListNode(carry); } return result; }
假设我们已经有一个 ListNode 类型定义:
function ListNode(val) { this.val = val; this.next = null; }
使用方法:
const l1 = new ListNode(2); l1.next = new ListNode(4); l1.next.next = new ListNode(3); const l2 = new ListNode(5); l2.next = new ListNode(6); l2.next.next = new ListNode(4); console.log(addTwoNumbers(l1, l2)); // [7, 0, 8]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 android 集成sentry上报时报错。
- ¥50 win10链接MySQL
- ¥35 跳过我的世界插件ip验证
- ¥15 抖音看过的视频,缓存在哪个文件
- ¥15 自定义损失函数报输入参数的数目不足
- ¥15 如果我想学习C大家有是的的资料吗
- ¥15 根据文件名称对文件进行排序
- ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
- ¥15 有人会用py或者r画这种图吗
- ¥15 MOD04_3K图像预处理