首先我们来看题

分析题意我们发现这有点像加法,只不过个位十位百位被分开处理了。并且把他们塞进了链表而不是数组,最后输出的是数组。
我们先模拟一下输入和输出
输入2 5 得出7 (相加嘛)
输入4 6 得出0 (这里进位了)
输入3 4 得出8 (这里是相加并且加上了进位来的1)
最后得出708 这样我们就确定了这个算法的大致功能
我以为蛮简单的,但我平时操作链表其实都用封装的类库,这时候我发现我去用js操作这个链式的对象有些问题,循环里面去获取对象的层级很难受,所以我简单的把小的轮子都写好之后就都删掉了,重新写了一个我灵机一动想到的方案
递归
但递归如果用原函数的话有一个小问题,我们需要一个参数来存放是否进位,原函数只有两个,所以我们重写一个函数进行递归代码如下

flag这个参数用来标记上一次是否进位,函数的递归每层都去操作全局变量arr这个数组,当一个数组被取完另一个还有val的时候手动加上一个0(一开始我只加了一个0,后来提交发现报错了,原来是我方法里用的是对象,必须手动添加一个带val:0的对象),最后速度打败了也是百分之八十多的算法,可能是因为递归和cpu调用的更高效率(?)这里暂时留下一个疑问,稍后会更新分析最优解是怎么会辣么快。
最优解:

最优解也使用了进位的概念,操作较我 的操作更简洁一些,可能性能的原因是使用了ES6的let关键字,这个我之后再研究一下,看能不能超越他的性能