Appearance
445. 两数相加 II
题目描述
给你两个 **非空 **链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
示例1:
- 输入: l1 =
[7,2,4,3], l2 =[5,6,4] - 输出:
[7,8,0,7]
示例2:
- 输入: l1 =
[2,4,3], l2 =[5,6,4] - 输出:
[8,0,7]
示例3:
- 输入: l1 = [0], l2 = [0]
- 输出: [0]
提示:
链表的长度范围为
[1, 100]``0 <= node.val <= 9输入数据保证链表代表的数字无前导 0
**进阶:**如果输入链表不能翻转该如何解决?
难度: Medium
题解代码
javascript
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function(l1, l2) {
const toNumber = link => {
let arr = []
let ele = {
next: link
}
while(ele.next) {
arr.push(ele.next.val)
ele.next = ele.next.next
}
return BigInt(arr.join(''))
}
const toLinkList = total => {
const arr = total.toString().split('')
let head = new ListNode(arr.shift())
let next = head
while (arr.length) {
next.next = new ListNode(arr.shift())
next = next.next
}
return head
}
const total = toNumber(l1) + toNumber(l2)
return toLinkList(total)
};