TYM042
两数相加
发布时间:2022-09-21
作者:yaming042
阅读量:- 次
本文字数:5.9k
阅读时长 ≈ 5 分钟
原题
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例
1 | 输入:l1 = [2,4,3], l2 = [5,6,4] |
解法思路:
看了leecode上的一些解题思路,感觉大概思路就和小学的加法竖式一样,个位加个位,十位加十位,大于10就进位;以最大长度的数组长度为标准进行数组遍历,依次对各位进行相加(这里数组短的第n位可能是undefined,相加时得容错),声明一个进位变量carry用来记录进位,那么第n为的值就是 (a[i]+b[i]+carry)%10 ,此时的进位carry就是 parseInt((a[i]+b[i]+carry)/10);当数组遍历完,可能进位还存在,所以此时就需要新增一位来容纳进位。
实现代码
1 | const addTwoNumber = (a=[], b=[]) => { |
注意:
- 需要对入参的合法性进行判断
- 函数里面需要做边界,取值语法判断,目前并没有做