题目描述
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
function getNum(p){
const arr = []
while(p){
arr.unshift(p.val)
p = p.next
}
return arr
}
//将数组转为整型
function turnNum(arr){
if(arr.length==0){
return 0
}
return BigInt(arr.join(''))
}
function getResList(resultNum){
const str = String(resultNum)
console.log(str)
const head = new ListNode(str[str.length-1])
for(let i = 0;i<str.length-1;i++){
let p = new ListNode()
p.val = str[i]
p.next = head.next
head.next = p
}
return head
}
var addTwoNumbers = function(l1, l2) {
let l1Arr = []
let l2Arr = []
if(l1.val===0&&l2.val===0&&!l1.next&&!l2.next){
return l1
}
let p1 = l1
let p2 = l2
//此时得到正序数组
l1Arr = getNum(p1)
l2Arr = getNum(p2)
//将正序数组转为正常数字
let l1Num = turnNum(l1Arr)
let l2Num = turnNum(l2Arr)
let resultNum = l1Num+l2Num
//将得到的结果转化为链表
const resultList = getResList(resultNum)
console.log(resultList)
return resultList
};