Menu
CoddyTech

Add Two Numbers

你会得到两个非负整数,每个整数都以单向链表存储各位数字,最低位在前。在第一个链表中,节点 i 存储数字 values1[i],并链接到节点 next1[i]。第二个链表的结构相同,使用 next2 和 values2。两个链表中,-1 都表示链表结束,头节点都是节点 0。节点的存储顺序与链表顺序不同,因此要沿着链接遍历。

返回两个数的和的各位数字,最低位在前。

函数

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
第一个数字中每个节点所链接节点的索引;如果是最后一个节点,则为 -1
values1integer-array
第一个数字中每个节点保存的数字
next2integer-array
第二个数字中每个节点所链接到的节点索引;如果是最后一个节点,则为 -1
values2integer-array
第二个数字中每个节点保存的数字
返回值integer-array
总和的各位数字,按从低位到高位排列

约束条件

  • 1 ≤ L1 ≤ 100,其中 L1 是 next1 和 values1 的长度。
  • 1 ≤ L2 ≤ 100,其中 L2 是 next2 和 values2 的长度。
  • 0 ≤ values1[i], values2[j] ≤ 9
  • next1 的每个条目都是 -1 或第一个列表的节点索引,next2 的每个条目都是 -1 或第二个列表的节点索引。
  • 从节点 0 开始,每个列表都会恰好访问其中的每个节点一次,然后到达 -1。不存在循环。
  • 没有任何数字以零开头:列表的最后一个节点保存的数字不是 0,除非列表只有一个数字 0。

示例

输入
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
输出
[5, 4, 1, 1]
解释
第一个列表访问节点 0, 2, 1,并读取 8, 1, 6,组成数字 618。第二个列表读取 7, 2, 5,组成数字 527。它们的和是 1145,所以答案是 5, 4, 1, 1。
challenge icon

进阶

如果列表按最高位在前的顺序存储数字,你会如何将这些数字相加?

重置代码
def addTwoNumbers(next1, values1, next2, values2):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

next1 = [2, -1, 1]
values1 = [8, 6, 1]
next2 = [2, -1, 1]
values2 = [7, 5, 2]

预期输出

[5, 4, 1, 1]